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

異常安全

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

另見