c – 从shared_ptr中提取原始指针
作者:互联网
是否可以从std :: shared_ptr或std :: tr1 :: shared_ptr对象中提取原始指针?目的是告诉智能指针对象我不希望它再管理对象的生命周期.上下文是我有一个API,它接受来自用户的原始指针并对该对象进行一些处理.为了使事情更容易管理API从这个原始指针创建一个shared_ptr.现在,用户可能会要求返回该对象.在这种情况下,当将处理后的对象返回给用户时,我想要返回原始指针.但是,我还没有办法做到这一点.使用.get()是不可能的,因为智能指针必须无限期地保持活动状态.我会回复一个unique_ptr但是在tr1中没有.
基本上我想将原始指针移出shared_ptr.
解决方法:
我想你正在搜索shared_ptr的方法release().对不起 – 没有这样的设计方法.
在这里,我发现了一个有趣的方式来做你想要的 – https://stackoverflow.com/a/13701773/233885.
您应该考虑在您的上下文(所有权)中再次使用shared_ptr.
标签:tr1,c,shared-ptr 来源: https://codeday.me/bug/20191003/1846838.html