table of contents
- Tumbleweed 2024.07.05-1.3
- Leap-16.0
- Leap-15.6
std::experimental::ranges::exchange(3) | C++ Standard Libary | std::experimental::ranges::exchange(3) |
NAME¶
std::experimental::ranges::exchange - std::experimental::ranges::exchange
Synopsis¶
Defined in header <experimental/ranges/utility>
template< MoveConstructible T, class U = T >
requires Assignable<T&, U> (ranges TS)
constexpr T exchange( T& obj, U&& new_val ) noexcept(/* see below
*/);
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)
Example¶
This section is incomplete
Reason: no example
See also¶
exchange replaces the argument with a new value and returns its
previous value
(C++14) (function template)
Categories:¶
* conditionally noexcept
* Todo no example
2024.06.10 | http://cppreference.com |