【发布时间】:2019-05-05 01:30:33
【问题描述】:
我正在阅读 Herb Sutter 撰写的 this article 关于将智能指针传递给函数的内容。他没有提到std::weak_ptr,老实说,我找不到传递这种智能指针有用的好场景。
函数是否拥有所有权?通过std::shared_ptr。该函数是否只需要对底层对象进行操作?传递原始指针或引用。
那么将std::weak_ptr 传递给函数100% 没用吗?
【问题讨论】:
-
到函数,是的,也许,到方法,那么这很有趣。
-
这真的取决于用例。
std::weak_ptr告诉您您不拥有该对象,并且在您尝试获取共享所有权之前它可能已经消失。如果这就是你想要的,那么这就是你应该使用的。
标签: c++ c++11 smart-pointers