次の方法で共有


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
    atomic の格納するオブジェクトへのポインター。Ty型の値。

  • Exp
    Ty型の値へのポインター。

  • Value
    Ty 型の値。

  • Order1
    memory_order 最初の引数。

  • Order2
    二つ目の引数に memory_order。Order2 の値は memory_order_releasememory_order_acq_relすることはできません Order1、の値よりも厳密な場合があります。

戻り値

bool 値の比較結果を示す。

解説

分割し、交換、比較操作はExpが指す値を持つ Atom が指すオブジェクトに格納されている値を比較します。値が等しい場合、操作は Val の Atom で read-modify-write 操作を使用して Order1順序が指定したメモリの制約を適用することによって指すオブジェクトに格納されている値を置き換えます。値がではない、操作は Atom によって指される格納され、Order2順序が指定したメモリの制約を適用するオブジェクトの値を使用した Exp が指す値を置き換えます。

弱い アトミックは比較し、比較された値が等しい場合に交換操作の交換を実行します。ただし、値がではない交換を実行するには、操作は保証されません。

必要条件

ヘッダー: の分割

名前空間: std

参照

関連項目

<atomic>

アトミック構造