Condividi tramite


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

Vedere anche

Riferimenti

<atomic>

struttura atomica