funzione atomic_compare_exchange_weak_explicit
Esegue un confronto atomico debole e scambio l'operazione.
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
Un puntatore a un oggetto atomic per memorizzare un valore di tipo Ty.Exp
Un puntatore a un valore di tipo Ty.Value
Valore di tipo Ty.Order1
Primo argomento memory_order.Order2
Secondo argomento memory_order.Il valore Order2 non può essere memory_order_release o memory_order_acq_rel, né può essere più sicura del valore Order1.
Valore restituito
bool che indica il risultato del confronto di valore.
Note
Un seguito vengono confrontate e l'operazione di scambio confronta il valore archiviato nell'oggetto che è puntata da Atom con il valore che è puntata da Exp.Se i valori sono uguali, l'operazione sostituisce il valore archiviato nell'oggetto che è puntata da Atom con Val tramite un'operazione read-modify-write e applicando i vincoli di memoria ordine in cui vengono specificati da Order1.Se i valori non sono uguali, l'operazione sostituisce il valore che è puntata da Exp con il valore memorizzato nell'oggetto che è puntata da Atom e applica i vincoli di memoria ordine in cui vengono specificati da Order2.
Un atomico debole confronta e l'operazione di scambio esegue uno scambio se i valori confrontati sono uguali.Tuttavia, se i valori non sono uguali, l'operazione non è garantito per eseguire uno scambio.
Requisiti
intestazione: atomico
Spazio dei nomi: deviazione standard