繁体   English   中英

从shared_ptr中提取原始指针

[英]Extracting a raw pointer from a shared_ptr

是否可以从std::shared_ptrstd::tr1::shared_ptr对象提取原始指针? 目的是告诉智能指针对象我不再希望它管理对象的生存期。 上下文是我有一个API,它从用户那里获取原始指针并对该对象进行一些处理。 为了使事情更易于管理,请在此原始指针的基础上创建一个shared_ptr 现在,用户可能会要求返回对象。 在那种情况下,当将处理后的对象还给用户时,我想还给原始指针。 但是,我还没有找到一种方法。 无法使用.get()因为智能指针将必须无限期地保持活动状态。 我会给一个unique_ptr但在tr1不可用。

基本上,我想将原始指针移出shared_ptr。

我认为您正在搜索shared_ptr的方法release() 抱歉-设计上没有这种方法。

在这里,我找到了一种有趣的方式来做您想要的事情-https: //stackoverflow.com/a/13701773/233885

您应该考虑在您的上下文(所有权)中再次使用shared_ptr

暂无
暂无

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

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