【发布时间】:2016-03-12 09:03:20
【问题描述】:
似乎有两种方法可以暂时获取weak_ptr所指向的资源的所有权:
- 使用
lock() - 将
weak_ptr传递给shared_ptr构造函数
这两者都会产生一个shared_ptr,如果weak_ptr 为空且shared_ptr 构造函数抛出异常,则锁返回nullptr。
所以问题是:什么时候应该使用其中一个?是否有与此相关的一般准则或最佳做法?
【问题讨论】:
标签: c++ c++11 smart-pointers weak-ptr