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