std::atomic<T>::exchange

< cpp‎ | atomic‎ | atomic
 
 
 
 
(C++11 起)
T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ) noexcept;
T exchange( T desired, std::memory_order order = std::memory_order_seq_cst ) volatile noexcept;

原子地以 desired 替换底层值。操作为读-修改-写操作。根据 order 的值影响内存。

std::atomic<T>::is_always_lock_freefalse 则 volatile 限定版本被弃用。

(C++20 起)

参数

desired - 要赋值的值
order - 要强加的内存顺序制约

返回值

调用前原子对象的值。

参阅

原子地以非原子实参的值替换原子对象的值,并返回该原子对象的旧值
(函数模板)