Namespaces
Variants

std::auto_ptr<T>:: operator=

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)
auto_ptr & operator = ( auto_ptr & r ) throw ( ) ;
(1) (C++11で非推奨)
(C++17で削除)
template < class Y >
auto_ptr & operator = ( auto_ptr < Y > & r ) throw ( ) ;
(2) (C++11で非推奨)
(C++17で削除)
auto_ptr & operator = ( auto_ptr_ref < T > m ) throw ( ) ;
(3) (C++11で非推奨)
(C++17で削除)

管理対象オブジェクトを r または m によって管理されているオブジェクトで置き換えます。

1) 実質的に reset ( r. release ( ) ) を呼び出します。
2) 実質的に reset ( r. release ( ) ) を呼び出す。 Y* T* に暗黙的に変換可能でなければならない。
3) 実質的に reset ( m. release ( ) ) を呼び出す。 auto_ptr_ref auto_ptr への参照を保持する実装定義型である。 std::auto_ptr はこの型との間で暗黙的に 変換可能 である。実装はこのテンプレートに異なる名前を付けたり、同等の機能を他の方法で実装することが許可されている。

目次

パラメータ

r - オブジェクトの所有権を移すための別の auto_ptr
m - auto_ptr への参照を保持する実装定義型のオブジェクト

戻り値

* this .

注記

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

欠陥報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR 適用対象 公開時の動作 正しい動作
LWG 127 C++98 auto_ptr auto_ptr_ref からの代入ができなかった オーバーロード (3) を追加