Namespaces
Variants

std::experimental::unique_resource<R, D>:: operator=

From cppreference.net
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> の公開メンバ関数)