Funkcja atomic_compare_exchange_strong_explicit
Wykonuje atomic porównywanie i wymiany operacji.
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 atomic obiekt, który przechowuje wartości typu Ty.Exp
Wskaźnik wartości typu Ty.Value
Wartości typu Ty.Order1
Pierwszy memory_order argument.Order2
Drugi memory_order argument.Wartość Order2 nie może być memory_order_release lub memory_order_acq_rel, nie może być silniejszy niż wartość Order1.
Wartość zwracana
A bool wskazuje, że wynik porównania wartości.
Uwagi
Atomic operacji porównaj i wymiany porównuje wartości, który jest przechowywany w obiekcie, który jest wskazywana przez Atom przeciwko wartość wskazywana przez Exp.Jeśli wartości są równe, wartości, który jest przechowywany w obiekcie, który jest wskazywana przez atom jest zastępowany Val za pomocą read-modify-write działanie i stosowanie pamięci zamówienia ograniczenia, które są określone przez Order1.Jeśli wartości nie są równe, operacja zastępuje wartość wskazywana przez Exp z wartości, który jest przechowywany w obiekcie, który jest wskazywana przez Atom i stosuje się ograniczenia zamówienia pamięci, które są określone przez Order2.
Wymagania
Nagłówek: atomic
Obszar nazw: std