std::atomic_ref<T>::operator&=,|=,^=

来自cppreference.com
< cpp‎ | atomic‎ | atomic ref
 
 
并发支持库
线程
(C++11)
(C++20)
(C++20)
this_thread 命名空间
(C++11)
(C++11)
(C++11)
互斥
(C++11)
(C++11)  
通用锁管理
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
条件变量
(C++11)
信号量
闩与屏障
(C++20)
(C++20)
未来体
(C++11)
(C++11)
(C++11)
(C++11)
安全回收
(C++26)
(C++26)
风险指针





原子类型
(C++11)
(C++20)
原子类型的初始化
(C++11)(C++20 中弃用)
(C++11)(C++20 中弃用)
内存定序
原子操作的自由函数
原子标志的自由函数
 
 
atomic<整数类型 > 特化才有的成员
T operator&=( T arg ) const noexcept;
(1) (C++20 起)
T operator|=( T arg ) const noexcept;
(2) (C++20 起)
T operator^=( T arg ) const noexcept;
(3) (C++20 起)

原子地以涉及先前值和 arg 的运算的结果替换被引用对象的当前值。这些操作是读修改写操作。

  • operator&= 进行原子逐位与。等价于 return fetch_and(arg) & arg;
  • operator!= 进行原子逐位或。等价于 return fetch_or(arg) | arg;
  • operator^= 进行原子逐位异或。等价于 return fetch_xor(arg) ^ arg;

参数

arg - 算术运算的实参

返回值

结果值(即对紧接对应的成员函数生效之前的值应用对应的二元运算符的结果)。

注解

不同于大多数复合赋值运算符,atomic_ref 的复合赋值运算符并不返回到其左侧实参的引用。它们代之以返回存储的值的副本。

示例

参阅

原子地在实参和被引用对象的值间进行逐位与,并获得先前保有的值
(公开成员函数)
原子地在实参和被引用对象的值间进行逐位或,并获得先前保有的值
(公开成员函数)
原子地在实参和被引用对象的值间进行逐位异或,并获得先前保有的值
(公开成员函数)
原子地将被引用对象增加或减少一
(公开成员函数)
原子地和被引用值加、减
(公开成员函数)