据我了解, std::weak_ptr
用作一种安全的记忆的安全方法,该记忆由 std::shared_ptr
引用的内存,这可能已被划分。它也可以与std::unique_ptr
一起使用吗?
据我了解,它的std :: feek_ptr被用作一种安全的方式来引用可能已被划分的共享_ptr所引用的内存。
你理解错误。std::weak_ptr
允许访问对象,该对象由std::shared_ptr
维护而无需共享。现在,当您真正了解std::weak_ptr
什么时,您应该了解您对std::unique_ptr
的问题没有任何意义。
有一个等效的指针作为std::unique_ptr
的观察者,但不会以与std::weak_ptr
相同的方式提供安全性。
指针是原始指针。如果他们不超过唯一的所有者,它们可以安全使用。
如果您需要知道原始指针所有者的寿命是否结束,则不,没有办法,也不是std::unique_ptr
的目标。
nope。
不幸的是,您必须使用std::shared_ptr
,并记录std::weak_ptr
S仅应暂时锁定。
no。
weak_ptr
可用的唯一构造函数是乘以shared_ptr
或另一个weak_ptr
的构造函数。
http://en.cppreference.com/w/cpp/memory/weak_ptr/weak_ptr