atomic_compare_exchange_strong_explicit 函数
执行基本比较和交换操作。
template <class _Ty>
inline bool atomic_compare_exchange_strong_explicit(
volatile atomic<Ty> *Atom,
Ty *Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
template <class Ty>
inline bool atomic_compare_exchange_strong_explicit(
atomic<Ty> *Atom,
Ty *Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
参数
Atom
指向 atomic 保存类型 Ty 的值的对象的指针Exp
指向类型 Ty值的指针。Value
一个 Ty 类型的值。Order1
第一 memory_order 参数。Order2
第二 memory_order 参数. Order2 的值不能为 memory_order_release 或 memory_order_acq_rel,所以它比 Order1的值不能相同。
返回值
表示值比较结果的bool.
备注
“基本比较和替换操作” 比较存储在由Atom 指向的对象和由 Exp指向的值。 如果值相等,存储在由 atom 指向的对象的值被替换为Val 通过使用 read-modify-write 操作并适用 Order1指定的内存排序约束。 如果值不相等,操作将由 Exp 指向的值替换为存储在由 Atom 指向的对象的值,并适用由Order2指定的值。
要求
**标头:**原子
命名空间: std