public member function
<atomic>

std::atomic::fetch_xor

T fetch_xor (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;T fetch_xor (T val, memory_order sync = memory_order_seq_cst) noexcept;
对包含的值执行按位异或操作
读取包含的值,并用读取的值与val执行按位异或(exclusive OR)操作的结果替换它。

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

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

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

参数

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

返回值

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

数据竞争

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

异常安全

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

另见