3
根据助推:锁的执行情况()
要访问该对象,的weak_ptr可以被转换为使用shared_ptr的构造或成员函数锁定一个shared_ptr。
再次,从升压:
shared_ptr<T> lock() const;
//Returns: expired()? shared_ptr<T>(): shared_ptr<T>(*this).
据我明白,返回shared_ptr<T>(*this)
装置创建具有的1引用计数一个新的shared_ptr;这绝对不是我们想要的。所以可能我不明白它是正确的。有人会解释吗?谢谢!
但是,“返回:”行中显示的代码不是线程安全的。我猜这就是现在*实际*实现(我的标准笔记副本,“原子执行”)。 –
这意味着'模板明确的shared_ptr(weak_ptr的常量& r);'被称为? –
Sanich
是的,在技术上原来的shared_ptr实例通过weak_ptr的访问,但仍是(更新答案提及)。 – axalis