Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Esegue un confronto atomico debole e scambio l'operazione in *this.
bool compare_exchange_weak(
Ty& Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) volatile _NOEXCEPT;
bool compare_exchange_weak(
Ty& Exp,
Ty Value,
memory_order Order1,
memory_order Order2
) _NOEXCEPT;
bool compare_exchange_weak(
Ty& Exp,
Ty Value,
memory_order Order1 = memory_order_seq_cst
) volatile _NOEXCEPT;
bool compare_exchange_weak(
Ty& Exp,
Ty Value,
memory_order Order1 = memory_order_seq_cst
) _NOEXCEPT;
Parametri
Exp
Valore di tipo Ty.Value
Valore di tipo Ty.Order1
Primo argomento memory_order.Order2
Secondo argomento memory_order.
Valore restituito
bool che indica il risultato del confronto di valore.
Note
Questo seguito vengono confrontate e l'operazione di scambio confronta il valore memorizzato in *this con Exp.Se i valori sono uguali, l'operazione sostituisce il valore memorizzato in *this con Val tramite un'operazione read-modify-write e applicazione di vincoli ordine di memoria specificate da Order1.Se i valori non sono uguali, l'operazione utilizza il valore memorizzato in *this per sostituire Exp e applica i vincoli di ordine di memoria specificate da Order2.
Un atomico debole confronta e l'operazione di scambio esegue uno scambio se i valori confrontati sono uguali.Se i valori non sono uguali, l'operazione non è garantito per eseguire uno scambio.
Overload di che non hanno un utilizzo memory_order di secondo Order2 implicito basato sul valore Order1.Se la proprietà Order1 è memory_order_acq_rel, la proprietà Order2 è memory_order_acquire.Se la proprietà Order1 è memory_order_release, la proprietà Order2 è memory_order_relaxed.In tutti gli altri casi, Order2 è uguale a Order1.
Per gli overload che accettano due parametri memory_order, il valore Order2 non deve essere memory_order_release o memory_order_acq_rele non deve essere più sicura del valore Order1.
Requisiti
intestazione: atomico
Spazio dei nomi: deviazione standard