Udostępnij za pośrednictwem


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

Zobacz też

Informacje

<atomic>

atomic — Struktura