Partager via


fonction atomic_compare_exchange_strong_explicit

Effectue une comparaison atomique et échangent l'exécution.

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;

Paramètres

  • Atom
    Un pointeur vers un objet d' atomic qui stocke une valeur de type Ty.

  • Exp
    Un pointeur vers une valeur de type Ty.

  • Value
    Valeur de type Ty.

  • Order1
    premier argument de memory_order .

  • Order2
    Le second argument d' memory_order .la valeur d' Order2 ne peut pas être memory_order_release ou memory_order_acq_rel, elle ne peut pas être plus forte que la valeur d' Order1.

Valeur de retour

bool qui indique le résultat de la comparaison de valeur.

Notes

Un atomique compare et l'exécution d'échange compare la valeur stockée dans l'objet qui est globale pointe vers Atom à la valeur qui est pointée pointe vers Exp.Si les valeurs sont égales, la valeur de retour la valeur stockée dans l'objet qui est globale pointe vers atom est remplacée par Val à l'aide d'une exécution et d'appliquer d' read-modify-write les contraintes de commande de mémoire qui sont spécifiées par Order1.Si les valeurs ne sont pas égales, l'opération remplace la valeur qui est pointée pointe vers Exp avec la valeur stockée dans l'objet qui est globale pointe vers Atom et applique les contraintes de commande de mémoire qui sont spécifiées par Order2.

Configuration requise

en-tête : atomique

l'espace de noms : DST

Voir aussi

Référence

<atomic>

structure atomique