草庐IT

bigDataPtr

全部标签

c++ - 我可以使用placement new 来重置shared_ptr 中的对象吗?

假设我有一个类。classBigData{...};typedefboost::shared_ptrBigDataPtr;然后我做:BigDataPtrbigDataPtr(newBigData());稍后在我完成我的对象之后,我确信该对象没有其他用户。执行以下操作是否安全:bigDataPtr->~BigDataPtr();new(&*bigDataPtr)BigData;这会让我在没有任何额外分配的情况下重置对象吗? 最佳答案 有几种方法可以解决这个问题。您可以使用placementnew,这可以保证是安全的,原因有两个:您已经

c++ - 我可以使用placement new 来重置shared_ptr 中的对象吗?

假设我有一个类。classBigData{...};typedefboost::shared_ptrBigDataPtr;然后我做:BigDataPtrbigDataPtr(newBigData());稍后在我完成我的对象之后,我确信该对象没有其他用户。执行以下操作是否安全:bigDataPtr->~BigDataPtr();new(&*bigDataPtr)BigData;这会让我在没有任何额外分配的情况下重置对象吗? 最佳答案 有几种方法可以解决这个问题。您可以使用placementnew,这可以保证是安全的,原因有两个:您已经