atomic_compare_exchange_strong_explicit — Funkcja
Wykonuje słabe porównanie atomowe i wymianę operacji na .
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;
Parametry
Atom
Wskaźnik do obiektu atomic, który przechowuje wartości typu Ty.Exp
Wskaźnik do wartości typu Ty.Value
Wartość typu Ty.Order1
Pierwszy memory_order argument.Order2
Drugi memory_order argument.Wartość Order2 nie może być memory_order_release ani memory_order_acq_rel, nie może być silniejszy niż wartość Order1.
Wartość zwracana
bool , która wskazuje wynik porównania wartości.
Uwagi
Niepodzielna operacja porównania i wymiany porównuje wartość, która jest przechowywana w obiekcie wskazywanym przez Atom z wartością, która jest wskazywana przez Exp.Jeśli wartości są równe, wartość, która jest przechowywana w obiekcie, który jest wskazywany przez atom jest zastępowana Val za pomocą operacji read-modify-write i stosując ograniczenia zlecenia pamięci, które są określone przez Order1.Jeśli wartości nie są równe, operacja zastępuje wartość, która jest wskazywany przez Exp wartością, która jest przechowywana w obiekcie, który jest wskazywany przez Atom i stosuje ograniczenia zlecenia pamięci, które są określone przez Order2.
Wymagania
Nagłówek: niepodzielny
Przestrzeń nazw: std