1

有没有办法找出一个 shared_ptr 被引用的 weak_ptr 的数量?

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

仅当没有 weak_ptr 引用它时,我才想释放 shared_ptr 持有的资源。所以将来某个时候如果我尝试从这个weak_ptr创建一个shared_ptr,我不应该得到一个nullptr。

目前在 C++11 中这可能吗?

4

1 回答 1

3

不。

做这件事没有接口,因为它会错过整个重点。

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

通过使用std::weak_ptr您专门允许您的资源被释放。如果那不是您想要的,请不要使用它。

于 2014-12-24T10:40:24.637 回答