名稱空間
變體
操作

std::auto_ptr

來自 cppreference.com
< cpp‎ | 記憶體
 
 
記憶體管理庫
(僅作說明*)
未初始化記憶體演算法
(C++17)
(C++17)
(C++17)
受約束的未初始化
記憶體演算法
C 庫

分配器
記憶體資源
垃圾回收支援
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
(C++11)(直到 C++23)
未初始化儲存
(直到 C++20*)
(直到 C++20*)
顯式生命週期管理
 
 
定義於標頭檔案 <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 成員函式) [編輯]