Sdílet prostřednictvím


Funkce atomic_compare_exchange_strong_explicit

Provede atomovou porovnat a exchange operace.

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
    Ukazatel na atomic objekt, který uchovává hodnotu typu Ty.

  • Exp
    Ukazatel na hodnotu typu Ty.

  • Value
    Hodnota typu Ty.

  • Order1
    První memory_order argument.

  • Order2
    Druhý memory_order argument.Hodnota Order2 nemůže být memory_order_release nebo memory_order_acq_rel, nemůže být silnější než hodnota Order1.

Vrácená hodnota

A bool označuje výsledek porovnání hodnoty.

Poznámky

Atomická operace porovnání a výměnu porovnává hodnoty uložené v objektu, který se odkazuje Atom proti hodnotu, která se odkazuje Exp.Pokud shodné hodnoty hodnotu, která je uložena v objektu, který se odkazuje atom je nahrazen Val pomocí read-modify-write operace a použití paměti objednávky omezení, které jsou určeny Order1.Pokud hodnoty nejsou shodné, operace nahradí hodnotu, která se odkazuje Exp s hodnotou, který je uložen v objektu, který se odkazuje Atom a použije pořadí omezení paměti, které jsou určeny Order2.

Požadavky

Záhlaví: atomovou

Obor názvů: std

Viz také

Referenční dokumentace

<atomic>

atomovou strukturu