std::atomic<T>::fetch_and

< cpp‎ | atomic‎ | atomic
 
 
 
 
(C++11 起)
(仅为 atomic<Integral> 模板特化的成员)
T fetch_and( T arg,
             std::memory_order order = std::memory_order_seq_cst ) noexcept;
T fetch_and( T arg,
             std::memory_order order = std::memory_order_seq_cst ) volatile noexcept;

原子地以值和 arg 逐位与的结果替换当前值。运算是读修改写操作。按照 order 的值影响内存。

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

(C++20 起)

参数

arg - 逐位与的另一参数
order - 强制的内存顺序制约

返回值

*this修改顺序中立即前趋此函数效果的值。

参阅

将原子对象替换为与非原子实参逻辑与的结果,并获得原子对象的先前值
(函数模板)