查找指向shared_ptr的weak_ptrs

时间:2014-12-24 07:27:45

标签: c++ c++11 shared-ptr smart-pointers weak-ptr

有没有办法找出被引用的shared_ptr的weak_ptrs数量?

unique()/ use_count()可以用于查找shared_ptrs,但是有一个类似的构造用于查找引用的weak_ptrs。

我想释放shared_ptr所持有的资源,只要没有引用它的weak_ptrs。所以,如果我尝试从这个weak_ptr创建一个shared_ptr,我将不会最终得到一个nullptr。

目前这在C ++ 11中是否可行?

1 个答案:

答案 0 :(得分:3)

没有

没有用于做这件事的界面,因为它会错过整个点。

如果没有std::shared_ptr引用资源,则会释放资源。

通过使用std::weak_ptr,您可以明确地允许释放您的资源。如果那不是您想要的,请不要使用它。