std::atomic_ref<T>:: operator&=,|=,^=
From cppreference.net
<
cpp
|
atomic
|
atomic ref
C++
Concurrency support library
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
std::atomic_ref
| Member functions | ||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
|
atomic_ref::operator&=
atomic_ref::operator|=
atomic_ref::operator^=
|
||||
| Constants | ||||
|
仅当
T
为除
cv
bool
之外的整数类型时提供
|
||
|
value_type operator
&
=
(
value_type arg
)
const
noexcept
;
|
(1) | (C++20 起) |
|
value_type operator
|
=
(
value_type arg
)
const
noexcept
;
|
(2) | (C++20 起) |
|
value_type operator
^
=
(
value_type 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 ; 。
这些重载仅当 std:: is_const_v < T > 为 false 时参与重载决议。
目录 |
参数
| arg | - | 算术运算的参数 |
返回值
结果值(即对相应成员函数生效前的值应用对应二元运算符所得的结果)。
注释
与大多数复合赋值运算符不同,
atomic_ref
的复合赋值运算符不会返回其左侧参数的引用。它们返回的是存储值的副本。
示例
|
本节内容不完整
原因:缺少示例 |
缺陷报告
下列行为变更缺陷报告被追溯应用于先前发布的 C++ 标准。
| 缺陷报告 | 适用范围 | 发布时行为 | 正确行为 |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | 复合赋值运算符对 const T 无意义 |
约束为仅接受非 const 的
T
|
参见
|
以原子方式在参数与被引用对象的值之间执行按位与操作,并获取先前持有的值
(公开成员函数) |
|
|
以原子方式在参数与被引用对象的值之间执行按位或操作,并获取先前持有的值
(公开成员函数) |
|
|
以原子方式在参数与被引用对象的值之间执行按位异或操作,并获取先前持有的值
(公开成员函数) |
|
|
以原子方式将被引用对象递增或递减一
(公开成员函数) |
|
|
以原子方式对被引用值进行加法或减法运算
(公开成员函数) |