std::auto_ptr
來自 cppreference.com
定義於標頭檔案 <memory> |
||
template< class T > class auto_ptr; |
(1) | (deprecated in C++11) (在 C++17 中已移除) |
template<> class auto_ptr<void>; |
(2) | (deprecated in C++11) (在 C++17 中已移除) |
auto_ptr
是一個智慧指標,用於管理透過 new 表示式獲得的記憶體,並在 auto_ptr
自身被銷燬時刪除該物件。它可用於為動態分配的物件提供異常安全,將動態分配物件的所有權傳遞給函式,以及從函式返回動態分配物件。
複製 auto_ptr
會複製指標並將所有權轉移到目標:auto_ptr
的複製構造和複製賦值都會修改其右側引數,“複製”與原始物件不相等。由於這些不尋常的複製語義,auto_ptr
不能放入標準容器中。為此及其他用途,首選 std::unique_ptr。(C++11 起)
2) 提供了 void 型別的特化,它聲明瞭 typedef
element_type
,但沒有成員函式。文件中始終引用了一個額外的類模板 auto_ptr_ref
。它是一個實現定義的型別,持有對 auto_ptr
的引用。實現可以為該模板提供不同的名稱,或者以其他方式實現返回它或接受它作為引數的函式。
目錄 |
[編輯] 成員型別
成員型別 | 定義 |
element_type | T |
[編輯] 成員函式
建立新的 auto_ptr (public 成員函式) | |
銷燬 auto_ptr 和所管理的物件(public 成員函式) | |
從另一個 auto_ptr 轉移所有權(public 成員函式) | |
將所管理指標轉換為指向不同型別的指標 (public 成員函式) | |
觀察器 | |
返回指向託管物件的指標 (public 成員函式) | |
訪問託管物件 (public 成員函式) | |
修改器 | |
替換託管物件 (public 成員函式) | |
釋放所管理物件的所有權 (public 成員函式) |