次の方法で共有


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

参照

関連項目

<atomic>

atomic 構造体