std::experimental::unique_resource<R, D>:: operator=
|
unique_resource
&
operator
=
(
unique_resource
&&
other
)
noexcept ( /*see below*/ ) ; |
(ライブラリファンダメンタルTS v3) | |
ムーブ代入演算子。管理対象リソースとデリータを other のものと置き換えます。
形式的には、
RS
を格納されたリソースハンドルの型とします:
- まず、現在所有しているリソースがあれば破棄するために reset ( ) を呼び出します。
-
次に、格納されているリソースハンドルとデリーターを
other
のものに代入します。
std::moveは、 std:: is_nothrow_move_assignable_v < RS > または std:: is_nothrow_move_assignable_v < D > がそれぞれ true の場合に、格納されているリソースハンドルまたはデリーターに適用されます。格納されているリソースハンドルの代入は、 std:: is_nothrow_move_assignable_v < D > が false であり、かつ std:: is_nothrow_move_assignable_v < RS > が true である場合を除き、最初に実行されます。 - 最後に、代入前に other がリソースを所有していた場合に限り * this をリソースの所有者に設定し、 other はリソースを所有しないように設定します。
std::
is_nothrow_move_assignable_v
<
RS
>
が
true
の場合、
RS
は
MoveAssignable
要件を満たさなければならない。そうでない場合、
RS
は
CopyAssignable
要件を満たさなければならない。同様に、
std::
is_nothrow_move_assignable_v
<
D
>
が
true
の場合、
D
は
MoveAssignable
要件を満たさなければならない。そうでない場合、
D
は
CopyAssignable
要件を満たさなければならない。上記の要件を満たさない場合、動作は未定義となる。
目次 |
パラメータ
| other | - | 所有権が転送されるリソースラッパー |
戻り値
* this
例外
コピー代入演算子でスローされるあらゆる例外。
注記
メンバーのコピーが例外をスローした場合、このメカニズムは other をそのまま保持し、 * this を解放状態にします。
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
管理対象リソースの破棄または置換
(公開メンバ関数) |
|
unique_ptr
の代入
(
std::unique_ptr<T,Deleter>
の公開メンバ関数)
|