std::experimental::ranges::exchange
From cppreference.com
< cpp | experimental | ranges
| Defined in header <experimental/ranges/utility> |
||
| template< MoveConstructible T, class U = T > requires Assignable<T&, U> |
(ranges TS) | |
obj の値を new_value で置き換え、obj の古い値を返します。あたかも以下のように動作します。
T old_value = std::move(obj); obj = std::forward<U>(new_value); return old_value;
目次 |
[編集] パラメータ
| obj | - | 置き換える値を持つオブジェクト |
| new_value | - | obj に代入される値 |
[編集] 戻り値
obj の古い値。
[編集] 例外
noexcept 指定:
noexcept(std::is_nothrow_move_constructible<T>::value &&
std::is_nothrow_assignable<T&, U>::value)
std::is_nothrow_assignable<T&, U>::value)
[編集] 例
| このセクションは未完成です 理由: 例がありません |
[編集] 関連項目
| (C++14) |
引数を新しい値で置き換え、その前の値を返す (関数テンプレート) |