有没有办法找出被引用的shared_ptr的weak_ptrs数量?
unique()/ use_count()可以用于查找shared_ptrs,但是有一个类似的构造用于查找引用的weak_ptrs。
我想释放shared_ptr所持有的资源,只要没有引用它的weak_ptrs。所以,如果我尝试从这个weak_ptr创建一个shared_ptr,我将不会最终得到一个nullptr。
目前这在C ++ 11中是否可行?
答案 0 :(得分:3)
没有用于做这件事的界面,因为它会错过整个点。
如果没有std::shared_ptr
引用资源,则会释放资源。
通过使用std::weak_ptr
,您可以明确地允许释放您的资源。如果那不是您想要的,请不要使用它。