Udostępnij za pośrednictwem


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

Zobacz też

Informacje

<atomic>

Struktura Atomowej