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の値よりも厳密なことはできません。
戻り値
bool 値の比較結果を示す。
解説
分割し、交換、比較操作はExpが指す値に対して Atom が指すオブジェクトに格納されている値を比較します。値が等しい場合 atom が指すオブジェクトの値を Val と read-modify-write 操作を使用して Order1が指定したメモリの順序の制約を適用することで置換されます。値がではない、操作は Atom によって指される格納され、Order2が指定したメモリの順序の制約を適用するオブジェクトの値を使用した Exp が指す値を置き換えます。
必要条件
ヘッダー: の分割
名前空間: std