命名空间
变体
操作

std::experimental::ranges::exchange

来自 cppreference.cn
< cpp‎ | experimental‎ | ranges
 
 
实验性
技术规范
文件系统库 (filesystem TS)
库基础 (library fundamentals TS)
库基础 2 (library fundamentals TS v2)
库基础 3 (library fundamentals TS v3)
并行扩展 (parallelism TS)
并行扩展 2 (parallelism TS v2)
并发扩展 (concurrency TS)
并发扩展 2 (concurrency TS v2)
概念 (concepts TS)
范围 (ranges TS)
反射 (reflection TS)
数学特殊函数 (special functions TR)
实验性非 TS
模式匹配
线性代数
std::execution
契约
2D 图形
 
 
通用工具库
实用组件
exchange
函数对象
元编程和类型特征
标签对和元组
                          
标签指定符
                                      
                          
 
template< MoveConstructible T, class U = T >

    requires Assignable<T&, U>

constexpr T exchange( T& obj, U&& new_val ) noexcept(/* see below */);
(ranges 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)

[编辑] 示例

[编辑] 参见

(C++14)
用新值替换参数并返回其先前的值
(函数模板) [编辑]