名前空間
変種

std::optional<T>::swap

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
<tbody> </tbody>
void swap( optional& other ) noexcept(/* see below */);
(C++17以上)

内容を other の内容と入れ替えます。

  • *thisother がどちらも値を格納していない場合、この関数は効果を持ちません。
  • *thisother のいずれか一方のみが値を格納している場合、値を格納しているオブジェクトを in、他方を un とすると、 un に格納されている値が std::move(*in) から直接初期化され、その後、 in->T::~T() によって行われたかのように、 in に格納されている値が破棄されます。 この呼び出し後、 in は値を格納していない状態になり、 un は値を格納している状態になります。
  • *thisother がどちらも値を格納している場合、 using std::swap; swap(**this, *other) を呼ぶことによって格納されている値が交換されます。 T の左辺値は安全に Swappable でなければなりません。

引数

other - 内容を交換する optional オブジェクト

戻り値

(なし)

例外

noexcept 指定:  
noexcept(std::is_nothrow_move_constructible_v<T> && std::is_nothrow_swappable_v<T>)

例外が投げられた場合、 *thisother の格納されている値の状態は、型 Tswap または型 T のムーブコンストラクタのどちらか呼ばれた方の例外安全性保証によって決まります。 *this および other の両方について、オブジェクトが値を格納している場合、そのオブジェクトは値を格納している状態のままになり、逆も同様です。

関連項目

std::swap アルゴリズムの特殊化
(関数) [edit]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.