簡體   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