繁体   English   中英

指向std :: unique_ptr的内容

[英]Pointing to the content of std::unique_ptr

我有一个std::unique_ptr和另一个原始指针。 我希望原始指针指向unique_ptr的内容,没有任何所有权。 它是只读关系:

auto bar=std::make_unique<foo>();
auto ptr=bar.get();// This may point to another value later

这不好吗? 还有其他选择吗?

注意 :真实的例子比较复杂。 他们不在同一个班级。

不,它还不错,直到标准库包含了提议的std::observer_ptr ,它才是表达非拥有观察者惯用方式。

如果你可以保证A) bar的生命周期将超过ptr的生命周期,并且B)没有程序员/重构将会写入delete ptr; 在任何一点上,这是完全正常的,并且可能适用于你需要在没有所有权的情况下传递指针的任何情况。

如果无法保证这两个条件,您可能应该使用std::shared_ptrstd::weak_ptr

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM