atomic_compare_exchange_strong_explicit-Funktion
Führt ein unteilbares vergleichen und austauschen Vorgang aus.
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;
Parameter
Atom
Ein Zeiger auf einen atomic-Objekt, das einen Wert des Typs Ty speichert.Exp
Ein Zeiger auf einen Wert des Typs Ty.Value
Ein Wert vom Typ Ty.Order1
Erstes memory_order-Argument.Order2
Zweite memory_order-Argument.Der Wert von Order2 kann nicht memory_order_release sein, oder memory_order_acq_rel, kann nicht als Wert von Order1 stärker sein.
Rückgabewert
bool, das das Ergebnis des Wertsvergleiches angibt.
Hinweise
Ein unteilbares vergleichen und Austauschvorgang vergleicht den Wert, der im - Objekt gespeichert wird, das auf durch Atom mit dem Wert angezeigt wird, der auf durch Exp gezeigt wird.Wenn die Werte gleich sind, wird der Wert, der im - Objekt gespeichert wird, das auf durch atom gezeigt wird, durch Val ersetzt, indem ein read-modify-write Vorgang verwendet und die Arbeitsspeicherreihenfolgeneinschränkungen anwenden, die von Order1 angegeben werden.Wenn die Werte nicht übereinstimmen, wird der Vorgang den Wert zu, der durch Exp mit dem Wert angezeigt wird, wird der im - Objekt gespeichert, das auf durch Atom dargestellt und die Arbeitsspeicherreihenfolgeneinschränkungen angewendet wird, die von Order2 angegeben werden.
Anforderungen
Header: atomar
Namespace: std