Condividi tramite


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

Vedere anche

Riferimenti

<atomic>

struttura atomica