funzione atomic_compare_exchange_strong_explicit
Esegue un confronto in modalità atomica e scambio l'operazione.
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;
Parametri
Atom
Un puntatore a un oggetto di 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 di memory_order .Order2
Secondo argomento di memory_order .Il valore di Order2 non può essere memory_order_release o memory_order_acq_rel, non può essere più sicura del valore di 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 sul valore che è puntata da Exp.Se i valori sono uguali, il valore archiviato nell'oggetto che è puntata da atom viene sostituito con Val tramite un'operazione di read-modify-write e applicazione di vincoli ordine di memoria specificate 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 ordine di memoria specificate da Order2.
Requisiti
intestazione: atomico
Spazio dei nomi: deviazione standard