Namespaces
Variants

std:: 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)
ヘッダーで定義 <memory>
template < class T > class auto_ptr ;
(1) (C++11で非推奨)
(C++17で削除)
template <> class auto_ptr < void > ;
(2) (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 member function)
auto_ptr と管理対象オブジェクトを破棄する
(public member function)
別の auto_ptr から所有権を転送する
(public member function)
管理対象ポインタを異なる型へのポインタに変換する
(public member function)
オブザーバ
管理対象オブジェクトへのポインタを返す
(public member function)
管理対象オブジェクトにアクセスする
(public member function)
モディファイア
管理対象オブジェクトを置き換える
(public member function)
管理対象オブジェクトの所有権を解放する
(public member function)