相关疑难解决方法(0)

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

假设我有一堂课.

class BigData {...};
typedef boost::shared_ptr<BigData> BigDataPtr; 
Run Code Online (Sandbox Code Playgroud)

然后我做:

BigDataPtr bigDataPtr(new BigData());
Run Code Online (Sandbox Code Playgroud)

在我完成了我的对象之后,我确信没有其他用户使用该对象.

执行以下操作是否安全:

bigDataPtr->~BigDataPtr();
new (&*bigDataPtr) BigData;
Run Code Online (Sandbox Code Playgroud)

这会让我重置对象而不需要任何额外的分配吗?

c++ memory performance

8
推荐指数
2
解决办法
1724
查看次数

标签 统计

c++ ×1

memory ×1

performance ×1