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
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