std::atomic<T>::operator&=,|=,^=
来自 cppreference.cn
仅是 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 的修改顺序中,在相应成员函数的效果之前,将相应二元运算符应用于该值的结果)。
[编辑] 注意
与大多数复合赋值运算符不同,原子类型的复合赋值运算符不返回对其左侧参数的引用。它们返回存储值的副本。
[编辑] 参阅
原子地在参数和原子对象的值之间执行按位与运算,并获取之前持有的值 (公共成员函数) | |
原子地在参数和原子对象的值之间执行按位或运算,并获取之前持有的值 (公共成员函数) | |
原子地在参数和原子对象的值之间执行按位异或运算,并获取之前持有的值 (公共成员函数) | |
将原子值递增或递减一 (公共成员函数) | |
对原子值进行加减 (公共成员函数) |