Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 共享ptr发布_C++_Shared Ptr_C++11 - Fatal编程技术网

C++ 共享ptr发布

C++ 共享ptr发布,c++,shared-ptr,c++11,C++,Shared Ptr,C++11,可能重复: 我正在尝试发布一个共享的\u ptr(您可以发布唯一的\u ptr的方式)。我知道当共享的ptr不是唯一的时,这是没有意义的,但是我有一个共享的ptr,它保证是唯一的。我试过 m_pObj.reset((T*)nullptr, [](T* const){}); …但它只是删除了对象。如果shared_ptr最终调用delete,我不确定deleter参数有什么用处 是否有任何方法可以实现这一点(如果没有其他方法,欢迎使用VS2010特定的解决方案)。在此get作为dup关闭之前

可能重复:

我正在尝试发布一个共享的\u ptr(您可以发布唯一的\u ptr的方式)。我知道当共享的ptr不是唯一的时,这是没有意义的,但是我有一个共享的ptr,它保证是唯一的。我试过

m_pObj.reset((T*)nullptr, [](T* const){});
…但它只是删除了对象。如果shared_ptr最终调用delete,我不确定deleter参数有什么用处

是否有任何方法可以实现这一点(如果没有其他方法,欢迎使用VS2010特定的解决方案)。

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

我认为有很多很好的理由可以解释为什么您偶尔会想要发布一个共享的_ptr(或boost::scoped_ptr)。然而,设计这些类的人认为您不应该这样做。(这是他们的孩子,他们有权这么做。)

就我所见,分离共享的ptr是不可能的。您需要使用另一个类,或者提出一个不需要分离它的设计


我应该知道,实际上你可以使用一个非常特殊的删除程序将其组合在一起。

为什么你要颠覆
共享的\u ptr
?删除程序伴随着新的值发布它的唯一方法可能是给其他人一个共享的\u ptr,或者重新思考你的整个设计我实际上是在读了这篇文章后才解决了这个问题。。。。