Namespaces
Variants

std::auto_ptr<T>:: auto_ptr

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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) auto_ptr をポインタ p で構築します。
2) auto_ptr を、 r が保持するポインタで構築します。 r. release ( ) が呼び出され、オブジェクトの所有権を取得します。
3) (2)と同様。 Y * T * に暗黙的に変換可能でなければならない。
4) auto_ptr を、 m によって参照される auto_ptr インスタンスが保持するポインタで構築します。 p. release ( ) が、オブジェクトの所有権を取得するために m が保持する auto_ptr p に対して呼び出されます。
auto_ptr_ref は、 auto_ptr への参照を保持する実装定義の型です。 std::auto_ptr はこの型へ暗黙的に 変換可能 であり、この型からの 代入も可能 です。実装はこのテンプレートに異なる名前を付けたり、同等の機能を他の方法で実装することが許可されています。

パラメータ

p - 管理対象オブジェクトへのポインタ
r - オブジェクトの所有権を転送するための別の auto_ptr
m - auto_ptr への参照を保持する実装定義型

注記

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