Funzione atomic_compare_exchange_weak_explicit
Esegue un'operazione di confronto e scambio atomico debole.
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;
Parametri
Atom
Puntatore a un oggetto atomic che include un valore di tipo Ty.Exp
Un puntatore a un valore di tipo Ty.Value
Valore di tipo Ty.Order1
Primo argomento di memory_order.Order2
Secondo argomento di memory_order. Il valore di Order2 non può essere memory_order_release o memory_order_acq_rel, né può essere più forte del valore di Order1.
Valore restituito
Un bool che indica il risultato del confronto del valore.
Note
Un confronto e scambio atomico debole confronta il valore archiviato nell'oggetto a cui fa riferimento Atom con il valore a cui fa riferimento Exp. Se i valori sono uguali, l'operazione sostituisce il valore archiviato nell'oggetto a cui fa riferimento Atom con Val utilizzando un'operazione di read-modify-write e applicando i vincoli di ordine di memoria specificati da Order1. Se i valori non sono uguali, l'operazione sostituisce il valore a cui fa riferimento Exp con il valore memorizzato nell'oggetto a cui fa riferimento Atom e applica i vincoli di ordine di memoria specificato da Order2.
Un'operazione di confronto e scambio atomico debole esegue uno scambio se i valori confrontati sono uguali. Tuttavia, se i valori non sono uguali, non è garantito che l'operazione esegua uno scambio.
Requisiti
Intestazione: atomico
Spazio dei nomi: std