std::auto_ptr<T>:: operator=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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 によって管理されているオブジェクトで置き換えます。
Y*
は
T*
に暗黙的に変換可能でなければならない。
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) を追加 |