public member function
<atomic>

std::atomic::fetch_and

T fetch_and (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;T fetch_and (T val, memory_order sync = memory_order_seq_cst) noexcept;
对存储的值执行按位与运算
读取存储的值,并用读取的值与 val 按位与运算的结果替换它。

整个操作是原子的(原子读-修改-写操作):在读取(用于返回)其值的那一刻到此函数修改其值的那一刻之间,其值不受其他线程影响。

此成员函数仅在针对整型类型(除了bool)的 atomic 特化中定义。

如果为第二个参数使用了默认值,此函数等效于 atomic::operator&=

参数

val
要应用的值。
Tatomic 的模板参数(包含值的类型)。
ptrdiff_t 是一个有符号整数类型。
sync
操作的同步模式。
这应是 memory_order enum 类型的值之一。

返回值

调用前的存储值。
Tatomic 的模板参数(包含值的类型)。

数据竞争

无数据竞争(原子操作)。内存顺序由参数 sync 指定。

异常安全

无异常保证: 绝不抛出异常。

另见