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 的 修改顺序 中相应成员函数的效果之前的值)。
[编辑] 说明
与大多数复合赋值运算符不同,原子类型的复合赋值运算符不会返回对它们的左操作数的引用。它们而是返回存储值的副本。
[编辑] 参见
原子地执行参数与原子对象的值之间的按位与运算,并获取之前保存的值 (公共成员函数) | |
原子地执行参数与原子对象的值之间的按位或运算,并获取之前保存的值 (公共成员函数) | |
原子地执行参数与原子对象的值之间的按位异或运算,并获取之前保存的值 (公共成员函数) | |
将原子值增加或减少 1 (公共成员函数) | |
向原子值加或减 (公共成员函数) |