c++ - shared_ptr 释放

标签 c++ shared-ptr c++11

<分区>

Possible Duplicate:
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的解决方案)。

最佳答案

在这个 get 作为 dup 关闭之前,我将添加我对此的看法。

我认为偶尔想要释放 shared_ptr(或 boost::scoped_ptr)有很多充分的理由。然而,设计这些类的人认为你不应该这样做。 (这是他们的 child ,他们有权。)

据我所知,根本不可能分离 shared_ptr。您将需要使用另一个类或想出一个不需要分离它的设计。

我应该read the dupes因为您可以使用非常特殊的删除器实际将其破解。

关于c++ - shared_ptr 释放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7603876/

相关文章:

python - 如何在 Python 指针中有效地迭代数组?

c++ - 我如何转换模板类

c++ - 从内存中加载图像

c++ - 多线程时一直调用对象析构函数,但对象没有超出范围

c++ - 从函数返回时 vector 的深度复制行为

c++ - 复制构造函数初始化

c++ - 是否可以在不出现总线错误的情况下写入 mmap 文件

c++ - 使用 shared_ptr 从函数返回时进行类型转换

c++ - 将shared_ptr分配给weak_ptr

c++ - make_shared 创建 std::shared_ptr?海湾合作委员会 4.6.2