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 起) |
目录 |
[edit] 参数
arg | - | 算术运算的参数 |
[edit] 返回值
结果值(即在 修改顺序 中,将对应的二元运算符应用于紧接在对应成员函数的效果之前的值 *this 的结果)。
[edit] 注解
与大多数复合赋值运算符不同,原子类型的复合赋值运算符不返回对其左侧参数的引用。 它们返回存储值的副本。
[edit] 参见
原子地执行参数与原子对象的值之间的按位与,并获得先前持有的值 (公有成员函数) | |
原子地执行参数与原子对象的值之间的按位或,并获得先前持有的值 (公有成员函数) | |
原子地执行参数与原子对象的值之间的按位异或,并获得先前持有的值 (公有成员函数) | |
原子地递增或递减原子值 1 (公有成员函数) | |
原子地加或减原子值 (公有成员函数) |