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 所指向物件中的值,會藉由 read-modify-write 作業,以及套用套用由 Order1指定的記憶體順序條件約束,將其值取代為 Val。 如果值不相等,則作業會用 Exp 所指向的物件值,將儲存在 Atom 指向物件中的值取代,並套用由 Order2 指定的記憶體順序條件約束。

當要比較的值相等,弱式 不可部分完成比較操作執行交換作業。 然而,如果值不相等,作業不保證執行交換。

需求

**標頭:**atomic

命名空間: std

請參閱

參考

<atomic>

atomic 結構