atomic_compare_exchange_strong_explicit, fonction
Effectue une opération atomique de comparaison et d'échange.
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
Pointeur vers un objet 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
Deuxième argument de memory_order. La valeur de Order2 ne peut pas être memory_order_release ou memory_order_acq_rel, ni ne peut être plus forte que la valeur de Order1.
Valeur de retour
Un bool qui indique le résultat de la comparaison de valeurs.
Notes
Une opération atomique de comparaison et d'échange compare la valeur stockée dans l'objet qui est désigné par Atom avec la valeur désignée par Exp. Si les valeurs sont égales, l'opération remplace la valeur stockée dans l'objet qui est désigné par atom avec Val en utilisant une opération de read-modify-write et en appliquant les contraintes d'ordre de la mémoire spécifiées par Order1. Si les valeurs ne sont pas égales, l'opération remplace la valeur qui est désignée par Exp avec la valeur stockée dans l'objet désigné par Atom et applique les contraintes d'ordre de la mémoire spécifiées par Order2.
Configuration requise
En-tête : atomique
Espace de noms : std