std::experimental::ranges::exchange
< cpp | experimental | ranges
template< ranges::MoveConstructible T, class U = T > requires ranges::Assignable<T&, U> |
(范围 TS) | |
以 new_value
替换 obj
的值并返回 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) |
将实参替换为一个新值,并返回其先前值 (函数模板) |