[英]Extracting a raw pointer from a shared_ptr
是否可以從std::shared_ptr
或std::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.