Share via


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_releasememory_order_acq_rel,不能是更具威力的值Order1。

傳回值

A bool ,表示值比較的結果。

備註

不可部分完成的比較和交換作業將會儲存在所指向物件的值進行比較Atom所指向的值對Exp。 所有值都都相等,如果所指向的物件中所儲存的值atom會取代Val藉由使用read-modify-write作業,並套用記憶體訂購都所指定的條件約束Order1。 如果值不相等,作業將會取代所指向的值Exp所指向的物件中所儲存的值與Atom ,並套用記憶體順序條件約束所指定的Order2。

需求

標頭: 不可部分完成

Namespace: 標準

請參閱

參考

<atomic>

不可部分完成的結構