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
    若要存储类型 Ty的值 atomic 对象的指针。

  • 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>

原子结构