Partager via


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

Voir aussi

Référence

<atomic>

structure atomique