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 , as if by
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) |