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
Ty 型の値が格納された atomic オブジェクトへのポインター。Exp
Ty 型の値へのポインター。Value
Ty 型の値。Order1
最初の memory_order 引数。Order2
2 番目の memory_order 引数。 Order2 の値は memory_order_release または memory_order_acq_rel にすることはできず、Order1、の値よりも強くすることもできません。
戻り値
値の比較の結果を示す bool。
解説
アトミックの比較および交換の操作は、Exp が指す値と Atom が指すオブジェクトに格納されている値を比較します。 値が等しい場合、read-modify-write 操作を使用して、Order1 によって指定されたメモリ順序制約を適用して、atom で指定されるオブジェクトに格納された値を Val と置き換えます。 値が等しくない場合、操作は Exp で指定される格納された値を Atom に指定されたオブジェクト内に格納された値と置き換え、Order2 によって指定されたメモリ順序制約を適用します。
必要条件
ヘッダー: atomic
名前空間: std