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