名稱空間
變體
操作

std::experimental::ranges::exchange

來自 cppreference.com
< cpp‎ | experimental‎ | ranges
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (concurrency TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
通用工具庫
實用元件
exchange
函式物件
超程式設計和型別特徵
帶標籤的對和元組
                          
tag specifiers
                                      
                          
 
定義於標頭檔案 <experimental/ranges/utility>
template< MoveConstructible T, class U = T >

    requires Assignable<T&, U>

constexpr T exchange( T& obj, U&& new_val ) noexcept(/* 見下方 */);
(ranges TS)

替換 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)
用新值替換引數並返回其舊值
(函式模板) [編輯]