名稱空間
變體
操作

std::auto_ptr<T>::operator auto_ptr<Y>

來自 cppreference.com
< cpp‎ | 記憶體‎ | auto ptr
 
 
記憶體管理庫
(僅作說明*)
未初始化記憶體演算法
(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*)
顯式生命週期管理
 
 
template< class Y >
operator auto_ptr_ref<Y>() throw();
(1) (C++11 中已棄用)
(在 C++17 中已移除)
template< class Y >
operator auto_ptr<Y>() throw();
(2) (C++11 中已棄用)
(在 C++17 中已移除)

*this 轉換為不同型別 Yauto_ptr

1) 返回一個持有 *this 引用的實現定義型別。std::auto_ptr 可以從這個模板進行轉換賦值。實現可以為該模板提供不同的名稱或以其他方式實現等效功能。
2) 透過呼叫 release() 獲取指標,構造一個新的 auto_ptr

[編輯] 引數

(無)

[編輯] 返回值

1) 一個持有 *this 引用的實現定義型別。
2) 一個 auto_ptr,其指標透過呼叫 release() 獲得。

[編輯] 注意

提供來自 auto_ptr_ref 的建構函式和複製賦值運算子是為了允許從無名臨時物件進行 std::auto_ptr 的複製構造和賦值。由於其複製建構函式和複製賦值運算子將引數作為非 const 引用,它們不能直接繫結右值引數。然而,可以執行使用者定義的轉換 (1)(2)(這會釋放原始的 auto_ptr),然後呼叫按值接收 auto_ptr_ref 的建構函式或複製賦值運算子。這是移動語義的早期實現。