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 指定。

異常安全

無異常保證: 絕不丟擲異常。

另見