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) | |
Replaces the value of obj with new_value and returns the old value of obj
T old_value = std::move(obj); obj = std::forward<U>(new_value); return old_value;
Parameters
obj | - | object whose value to replace |
new_value | - | the value to assign to obj
|
Return value
The old value of obj.
Exceptions
noexcept specification:
noexcept
(
std::is_nothrow_move_constructible
<T>
::
value
&&
std::is_nothrow_assignable <T&, U> :: value )
std::is_nothrow_assignable <T&, U> :: value )
Example
This section is incomplete Reason: no example |
See also
(C++14)
|
replaces the argument with a new value and returns its previous value (function template) |