std:: auto_ptr
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
ヘッダーで定義
<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以降)
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) |
|