Udostępnij za pośrednictwem


atomic_compare_exchange_weak_explicit — Funkcja

Wykonuje słabe porównanie atomowe i wymianę operacji.

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
    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, ani 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, operacja zastępuje wartość, która jest przechowywana w obiekcie, który jest wskazywany przez Atom z 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.

Słaba, niepodzielna operacja porównania i wymiany wykonuje wymianę w przypadku, gdy porównane wartości są równe.Jednakże, jeśli wartości nie są równe, działanie nie jest gwarantowane do wykonania wymiany.

Wymagania

Nagłówek: niepodzielny

Przestrzeń nazw: std

Zobacz też

Informacje

<atomic>

atomic — Struktura