公有成員函式
<atomic>

std::atomic::operator (複合賦值)

如果 T 是整數型別 (1)
T operator+= (T val) volatile noexcept;T operator+= (T val) noexcept;T operator-= (T val) volatile noexcept;T operator-= (T val) noexcept;T operator&= (T val) volatile noexcept;T operator&= (T val) noexcept;T operator|= (T val) volatile noexcept;T operator|= (T val) noexcept;T operator^= (T val) volatile noexcept;T operator^= (T val) noexcept;
如果 T 是指標型別 (2)
T operator+= (ptrdiff_t val) volatile noexcept;T operator+= (ptrdiff_t val) noexcept;T operator-= (ptrdiff_t val) volatile noexcept;T operator-= (ptrdiff_t val) noexcept;
複合賦值
atomic整數 (1)指標 (2) 型別的特例化支援複合賦值

這些函式中的每一個都訪問“包含的值”,應用相應的運算子,並返回操作前“包含的值”的即時值;所有這些操作都在一次原子操作中完成,不受其他執行緒的影響。

這些函式表現得好像呼叫了相應的 fetch_* 成員函式,並將 memory_order_seq_cst 作為第二個引數。
運算子成員函式支援用於
複合賦值等效整數型別指標型別其他型別
+atomic::operator+=atomic::fetch_add
-atomic::operator-=atomic::fetch_sub
&atomic::operator&=atomic::fetch_and
|atomic::operator|=atomic::fetch_or
^atomic::operator^=atomic::fetch_xor

引數

val
要應用的值。
Tatomic 的模板引數(包含的值的型別)。
ptrdiff_t 是一個有符號整數型別。

返回值

應用操作後包含的值。
Tatomic 的模板引數(包含的值的型別)。

資料競爭

無資料競爭(原子操作)。該操作使用順序一致性memory_order_seq_cst)。

異常安全

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

另見