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。
傳回值
A bool ,表示值比較的結果。
備註
不可部分完成的比較和交換作業將會儲存在所指向物件的值進行比較Atom所指向的值對Exp。 所有值都都相等,如果所指向的物件中所儲存的值atom會取代Val藉由使用read-modify-write作業,並套用記憶體訂購都所指定的條件約束Order1。 如果值不相等,作業將會取代所指向的值Exp所指向的物件中所儲存的值與Atom ,並套用記憶體順序條件約束所指定的Order2。
需求
標頭: 不可部分完成
Namespace: 標準