public member function
<atomic>

std::atomic::fetch_or

T fetch_or (T val, memory_order sync = memory_order_seq_cst) volatile noexcept;T fetch_or (T val, memory_order sync = memory_order_seq_cst) noexcept;
对存储的值执行按位或操作
读取存储的值,并将其替换为读取的值与 val 按位或操作的结果。

整个操作是原子的(一个原子读-修改-写操作):在函数读取(并返回)其值到修改其值的时刻之间,该值不会受到其他线程的影响。

此成员函数仅在 atomic整型类型(除了 bool)的特化中定义。

如果为第二个参数使用了默认值,则此函数等效于 atomic::operator&=

参数

val
要应用的数值。
Tatomic 的模板参数(包含值的类型)。
ptrdiff_t 是有符号整型。
sync
操作的同步模式。
这应该是 memory_order enum 类型的值之一。

返回值

调用前的存储值。
Tatomic 的模板参数(包含值的类型)。

数据竞争

无数据竞争(原子操作)。内存顺序由参数 sync 指定。

异常安全

无异常保证: 绝不抛出异常。

另见