atomic_compare_exchange_strong_explicit-Funktion
Führt einen atomischen Vergleichs- und Austausch-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 ein atomic-Objekt, in dem ein Wert des Typs Ty gespeichert wird.Exp
Ein Zeiger auf einen Wert des Typs Ty.Value
Ein Wert vom Typ Ty.Order1
Erstes memory_order-Argument.Order2
Zweites memory_order-Argument. Der Wert von Order2 kann nicht memory_order_release oder memory_order_acq_rel sein, er kann nicht stärker als der Wert von Order1 sein.
Rückgabewert
Ein das Ergebnis des Wertevergleichs angebendes bool-Element.
Hinweise
Mit einem atomischen Vergleichs- und Austauschvorgang wird der Wert verglichen, der in dem Objekt gespeichert wird, auf das von Atom gegen den Wert angezeigt wird, auf den von Exp gezeigt wird. Wenn die Werte gleich sind, wird der Wert, der in dem Objekt gespeichert wird, auf das von atom gezeigt wird, durch Val ersetzt, indem ein read-modify-write-Vorgang verwendet und die von Order1 angegebenen Einschränkungen für die Speicherreihenfolge angewendet werden. Wenn die Werte nicht gleich sind, wird der Wert, auf den von Exp mit dem Wert ersetzt, der in dem Objekt gespeichert ist, auf das von Atom gezeigt wird, und es werden die von Order2 angegebenen Einschränkungen für die Speicherreihenfolge angewendet.
Anforderungen
Header: atomisch
Namespace: std