atomic_compare_exchange_weak_explicit – funkce

Provádí operaci slabé atomické porovnání a záměna.

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;

Parametry

  • Atom
    Ukazatel na objekt atomic, který ukládá hodnotu typu Ty.

  • Exp
    Ukazatel na hodnotu typu Ty.

  • Value
    Hodnota typu Ty.

  • Order1
    První argument memory_order.

  • Order2
    Druhý argument memory_order.Hodnota Order2 nemůže být memory_order_release ani memory_order_acq_rel ani nemůže být silnější než hodnota Order1.

Vrácená hodnota

Hodnota bool označuje výsledek porovnání hodnoty.

Poznámky

Atomická operace porovnání a výměny porovnává hodnotu uloženou v objektu, na který ukazuje Atom, s hodnotou, na kterou ukazuje Exp.Pokud jsou hodnoty stejné, operace nahradí hodnotu uloženou v objektu, na který ukazuje Atom hodnotou Val pomocí operace read-modify-write a použitím omezení pořadí paměti, která jsou určena pomocí Order1.Pokud nejsou hodnoty stejné, operace nahradí hodnotu, na kterou ukazuje Exp, hodnotou uloženou v objektu, na kterou ukazuje Atom, a použije omezení pořadí paměti, která jsou určena pomocí Order2.

Slabé atomické operace porovnání a výměny provádějí výměnu, pokud porovnávané hodnoty jsou si rovny.Nicméně pokud hodnoty nejsou shodné, není zaručeno provedení výměny operací.

Požadavky

Záhlaví: atomic

Obor názvů: std

Viz také

Referenční dokumentace

<atomic>

atomic – struktura