Condividi tramite


struttura atomica

Descrive un oggetto che consente di eseguire operazioni atomiche su un valore memorizzato di tipo Ty.

template <class Ty>
struct atomic;

Membri

Hh874651.collapse_all(it-it,VS.110).gifCostruttori pubblici

Nome

Descrizione

costruttore atomic::atomic

Costruisce un oggetto atomico.

Hh874651.collapse_all(it-it,VS.110).gifOperatori pubblici

Nome

Descrizione

operatore di Ty di atomic::operator

Legge e restituisce il valore memorizzato.(metodo atomic::load)

cbegin (metodo)

Utilizza un valore specificato per sostituire il valore memorizzato.(metodo atomic::store)

operatore di atomic::operator++

Incrementa il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore.

operatore di atomic::operator+=

Aggiunge un valore specificato per il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore.

atomic::operator-- operatore

Decrementa il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore.

operatore di atomic::operator-=

Sottrae un valore specificato dal valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore.

operatore di atomic::operator&=

Esegue un bit per bit and su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale.

atomic::operator|Operatore =

Esegue un bit per bit or su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale.

operatore di atomic::operator^=

Esegue un bit per bit exclusive or su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale.

Hh874651.collapse_all(it-it,VS.110).gifMetodi pubblici

Nome

Descrizione

metodo atomic::compare_exchange_strong

Esegue un atomic_compare_and_exchange operazione su this e restituisce il risultato.

metodo atomic::compare_exchange_weak

Esegue un weak_atomic_compare_and_exchange operazione su this e restituisce il risultato.

metodo atomic::fetch_add

Aggiunge un valore specificato per il valore memorizzato.

metodo atomic::fetch_and

Esegue un bit per bit and su un valore specificato e il valore memorizzato.

metodo atomic::fetch_or

Esegue un bit per bit or su un valore specificato e il valore memorizzato.

metodo atomic::fetch_sub

Sottrae un valore specificato dal valore memorizzato.

metodo atomic::fetch_xor

Esegue un bit per bit exclusive or su un valore specificato e il valore memorizzato.

metodo atomic::is_lock_free

Specifica se le operazioni atomiche sui this sono blocco libero.Un tipo atomic è blocco libero se nessuna operazione atomica su quel tipo di utilizzano dei blocchi.

metodo atomic::load

Legge e restituisce il valore memorizzato.

metodo atomic::store

Utilizza un valore specificato per sostituire il valore memorizzato.

Note

Il tipo di Ty deve essere facilmente copyable.Che utilizzano memcpy per copiare i byte deve produrre un valido Ty oggetto Confronta uguale all'oggetto originale.Il compare_exchange_weak e compare_exchange_strong utilizzare le funzioni membro memcmp per determinare se due Ty i valori sono uguali.Queste funzioni non utilizzerà un Ty-definiti operator==.Le funzioni membro di atomic utilizzare memcpy per copiare i valori di tipo Ty.

Una specializzazione parziale, atomic<Ty *>, è disponibile per tutti i tipi puntatore.La specializzazione consente l'aggiunta di un offset per il valore del puntatore gestito o la sottrazione di un offset da esso.Le operazioni aritmetiche accettano un argomento di tipo ptrdiff_t e regolare l'argomento in base alle dimensioni di Ty per essere coerenti con l'indirizzo di normali operazioni aritmetica.

Una specializzazione esiste per ogni tipo integrale ad eccezione di bool.Ogni specializzazione offre una vasta gamma di metodi per operazioni aritmetiche e logiche atomiche.

atomic<char>

atomic<signed char>

atomic<unsigned char>

atomic<char16_t>

atomic<char32_t>

atomic<wchar_t>

atomic<short>

atomic<unsigned short>

atomic<int>

atomic<unsigned int>

atomic<long>

atomic<unsigned long>

atomic<long long>

atomic<unsigned long long>

Specializzazioni integrali sono derivate da corrispondente **atomic_**integral tipi.Ad esempio, atomic<unsigned int> derivato da atomic_uint.

Requisiti

Intestazione: atomica

Spazio dei nomi: std

Vedere anche

Riferimenti

<atomic>

Altre risorse

File di intestazione