std::atomic<T>::operator&=,|=,^=
來自 cppreference.com
僅是 atomic<Integral > 特化 |
||
T operator&=( T arg ) noexcept; |
(1) | (C++11 起) |
T operator&=( T arg ) volatile noexcept; |
(2) | (C++11 起) |
T operator|=( T arg ) noexcept; |
(3) | (C++11 起) |
T operator|=( T arg ) volatile noexcept; |
(4) | (C++11 起) |
T operator^=( T arg ) noexcept; |
(5) | (C++11 起) |
T operator^=( T arg ) volatile noexcept; |
(6) | (C++11 起) |
原子地用涉及前一個值和 arg 的計算結果替換當前值。該操作是讀-改-寫操作。
- operator&= 執行原子位與。等價於 return fetch_and(arg) & arg;。
- operator|= 執行原子位或。等價於 return fetch_or(arg) | arg;。
- operator^= 執行原子位異或。等價於 return fetch_xor(arg) ^ arg;。
如果 std::atomic<T>::is_always_lock_free 為 false 且任何 volatile 過載參與過載決議,則該操作已棄用。 |
(C++20 起) |
目錄 |
[編輯] 引數
arg | - | 算術操作的引數 |
[編輯] 返回值
結果值(即,在 *this 的修改順序中,在相應成員函式的效果之前,將相應二元運算子應用於該值的結果)。
[編輯] 注意
與大多數複合賦值運算子不同,原子型別的複合賦值運算子不返回對其左側引數的引用。它們返回儲存值的副本。
[編輯] 參閱
原子地在引數和原子物件的值之間執行按位與運算,並獲取之前持有的值 (公共成員函式) | |
原子地在引數和原子物件的值之間執行按位或運算,並獲取之前持有的值 (公共成員函式) | |
原子地在引數和原子物件的值之間執行按位異或運算,並獲取之前持有的值 (公共成員函式) | |
將原子值遞增或遞減一 (公共成員函式) | |
對原子值進行加減 (公共成員函式) |