【发布时间】:2011-09-29 22:01:11
【问题描述】:
可能重复:
How to release pointer from boost::shared_ptr?
Detach a pointer from a shared_ptr?
我正在尝试发布 shared_ptr(您可以发布 unique_ptr 的方式)。我知道当 shared_ptr 不是唯一的时这没有意义,但是我有一个 shared_ptr 保证是唯一的。我试过了……
m_pObj.reset((T*)nullptr, [](T* const){});
...但无论如何它只是删除了对象。如果 shared_ptr 最终调用 delete ,我不确定那个 deleter 参数有什么用。
有什么方法可以实现(如果没有其他方法,欢迎使用特定于 VS2010 的解决方案)。
【问题讨论】:
-
为什么要颠覆
shared_ptr? -
删除器伴随着新值
-
发布它的唯一方法可能是给别人一个shared_ptr,或者重新考虑你的整个设计
标签: c++ shared-ptr c++11