atomic_compare_exchange_weak_explicit-Funktion
Führt ein schwaches unteilbares vergleichen und austauschen 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 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 sein memory_order_release oder memory_order_acq_rel, noch kann er als der 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 Vorgang den Wert, der im Objekt gespeichert wird, das auf durch Atom mit Val gezeigt wird, indem ein read-modify-write Vorgang verwendet und die ArbeitsspeicherReihenfolge Einschränkungen gilt, die durch 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 ArbeitsspeicherReihenfolge Einschränkungen angewendet wird, die von Order2 angegeben werden.
Ein schwaches unteilbares vergleichen und Austauschvorgang führt einen Austausch aus, wenn die verglichenen Werte gleich sind.Wenn die Werte nicht übereinstimmen, wird der Vorgang nicht gewährleistet, dass einen Austausch auszuführen.
Anforderungen
Header: atomar
Namespace: std