public member function
<atomic>

std::atomic::fetch_or

T fetch_or (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;T fetch_or (T val, memory_order sync = memory_order_seq_cst) noexcept;
對儲存的值執行按位或操作
讀取儲存的值,並將其替換為讀取的值與 val 按位或操作的結果。

整個操作是原子的(一個原子讀-修改-寫操作):在函式讀取(並返回)其值到修改其值的時刻之間,該值不會受到其他執行緒的影響。

此成員函式僅在 atomic整型型別(除了 bool)的特化中定義。

如果為第二個引數使用了預設值,則此函式等效於 atomic::operator&=

引數

val
要應用的數值。
Tatomic 的模板引數(包含值的型別)。
ptrdiff_t 是有符號整型。
sync
操作的同步模式。
這應該是 memory_order enum 型別的值之一。

返回值

呼叫前的儲存值。
Tatomic 的模板引數(包含值的型別)。

資料競爭

無資料競爭(原子操作)。記憶體順序由引數 sync 指定。

異常安全

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

另見