atomic_compare_exchange_weak_explicit-Funktion
Führt einen schwachen atomischen Vergleichs- und Austausch-Vorgang aus.
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;
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 weder memory_order_release oder memory_order_acq_rel sein, noch kann er 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 mit den Wert angezeigt wird, auf den von Exp gezeigt wird. Wenn die Werte gleich sind, wird mit dem Vorgang 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 Arbeitsspeicherreihenfolge 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 Arbeitsspeicherreihenfolge angewendet.
Mit einem schwachen atomischen Vergleichs- und Austauschvorgang wird einen Austausch ausgeführt, wenn die verglichenen Werte gleich sind. Wenn die Werte allerdings nicht gleich sind, ist nicht sichergestellt, dass Austausch mit dem Vorgang ausgeführt wird.
Anforderungen
Header: atomisch
Namespace: std