我正在阅读Herb Sutter关于向函数传递智能指针的文章,链接如下:https://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/。他没有提到std::weak_ptr
,而且我无法找到一个好的场景来使用这种智能指针。
如果函数需要所有权,请传递std::shared_ptr
。如果函数只需要操作底层对象,请传递原始指针或引用。
那么,向函数传递std::weak_ptr
是否百分之百没有用处呢?
std::weak_ptr
表示你并不拥有这个对象,当你试图获取共享所有权时,它可能已经不存在了。如果这正是你想要的,那么就应该使用它。 - NathanOliver