# 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_free 为 false 则 volatile 限定版本被弃用。 | (C++20 起)

### 参数

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

### 返回值

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

### 参阅

atomic_fetch_and atomic_fetch_and_explicit (C++11)(C++11) | 将原子对象替换为与非原子实参逻辑与的结果，并获得原子对象的先前值 (函数模板)