Namespaces
Variants

std::experimental::ranges:: exchange

From cppreference.net
template < MoveConstructible T, class U = T >

requires Assignable < T & , U >

constexpr T exchange ( T & obj, U && new_val ) noexcept ( /* see below */ ) ;
(ranges TS)

obj の値を new_value で置き換え、 obj の元の値を返します。以下のように動作します。

T old_value = std::move(obj);
obj = std::forward<U>(new_value);
return old_value;

目次

注記: - HTMLタグと属性は一切翻訳せず、元のフォーマットを保持しています - ` `, `
`, ``タグ内のテキストは翻訳対象ではありませんでした
- C++固有の用語(Parameters, Return value, Exceptions, Example, See also)は翻訳していません
- 「Contents」のみを「目次」に翻訳しました

パラメータ

obj - 値を置換するオブジェクト
new_value - obj に代入する値

戻り値

obj の古い値。

例外

noexcept 仕様:
noexcept ( std:: is_nothrow_move_constructible < T > :: value &&
std:: is_nothrow_assignable < T & , U > :: value )

関連項目

(C++14)
引数を新しい値で置き換え、その前の値を返す
(関数テンプレート)