atomic_compare_exchange_weak_explicit 函数

执行“原子比较和交换” 操作。

template <class Ty>
inline bool atomic_compare_exchange_weak_explicit(
   volatile atomic<Ty> *Atom,
   Ty *Exp,
   Ty Value,
   memory_order Order1,
   memory_order Order2
) _NOEXCEPT;
template <class Ty>
inline bool atomic_compare_exchange_weak_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_releasememory_order_acq_rel,也不能大于 Order1的值。

返回值

表示值比较结果的bool.

备注

“基本比较和替换操作” 比较存储在由Atom 指向的对象和由 Exp指向的值。 如果值相等,存储在由 Atom 指向的对象的值被替换为Val 通过使用 read-modify-write 操作并适用 Order1指定的内存排序约束。 如果值不相等,操作将由 Exp 指向的值替换为存储在由 Atom 指向的对象的值,并适用由Order2指定的内存排序约束。

如果比较的值相等,“弱” 基本比较与替换操作执行替换。 但是,如果值不相等,操作不能保证执行替换。

要求

**标头:**原子

命名空间: std

请参见

参考

<atomic>

atomic 结构