fonction atomic_compare_exchange_weak_explicit
Effectue un atomique faible comparent et échangent l'exécution.
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;
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, ni il peut ê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 avec la valeur qui est pointée pointe vers Exp.Si les valeurs sont égales, l'opération remplace la valeur stockée dans l'objet qui est globale pointe vers Atom avec Val à l'aide d'une exécution et d'appliquer d' read-modify-write les contraintes de mémoire commande 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 mémoire commande qui sont spécifiées par Order2.
Un atomique faible compare et l'exécution d'échange exécute un échange si les valeurs sont comparées égales.Toutefois, si les valeurs ne sont pas égales, l'opération n'est pas garanti exécuter un échange.
Configuration requise
en-tête : atomique
l'espace de noms : DST