名前空間
変種

std::auto_ptr<T>::auto_ptr

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
動的メモリ管理
スマートポインタ
(C++11)
(C++11)
(C++11)
(C++17未満)
(C++11)
アロケータ
メモリリソース
未初期化記憶域
ガベージコレクションサポート
その他
(C++20)
(C++11)
(C++11)
C のライブラリ
低水準のメモリ管理
 
 
<tbody> </tbody>
explicit auto_ptr( X* p = 0 ) throw();
(1) (C++11で非推奨)
(C++17で削除)
auto_ptr( auto_ptr& r ) throw();
(2) (C++11で非推奨)
(C++17で削除)
template< class Y > auto_ptr( auto_ptr<Y>& r ) throw();
(3) (C++11で非推奨)
(C++17で削除)
auto_ptr( auto_ptr_ref<X> m ) throw();
(4) (C++11で非推奨)
(C++17で削除)

管理するオブジェクトを参照するポインタから auto_ptr を構築します。

1) ポインタ p を持つ auto_ptr を構築します。
2) r に保持されているポインタを持つ auto_ptr を構築します。 オブジェクトの所有権を取得するために r.release() が呼ばれます。
3) (2) と同じです。 Y* は暗黙に T* に変換可能でなければなりません。
4) m によって参照される auto_ptr のインスタンスに保持されているポインタを持つ auto_ptr を構築します。 オブジェクトの所有権を取得するために m が保持する auto_ptr p に対して p.release() が呼ばれます。
auto_ptr_refauto_ptr を指す参照を保持する処理系定義の型です。 std::auto_ptr は暗黙にこの型に変換可能かつこの型から代入可能です。 処理系は別の名前を持つテンプレートを提供したり他の方法で同等な機能を実装しても構いません。

引数

p - 管理するオブジェクトを指すポインタ
r - オブジェクトの所有権の転送元となる別の auto_ptr
m - auto_ptr を指す参照を保持する処理系定義の型

ノート

auto_ptr_ref からのコンストラクタおよびコピー代入演算子は無名の一時オブジェクトからの std::auto_ptr のコピー構築および代入を可能とするために提供されます。 コピーコンストラクタおよびコピー代入演算子は引数を非 const 参照として取るため、右辺値引数を直接束縛できません。 しかし、 (元の auto_ptr を解放する) ユーザ定義変換を実行し、その後 auto_ptr_ref を値で取るコンストラクタまたはコピー代入演算子を呼ぶことはできます。 これはムーブセマンティクスの初期の実装です。

Morty Proxy This is a proxified and sanitized view of the page, visit original site.