struttura atomica
Descrive un oggetto che consente di eseguire operazioni atomiche su un valore memorizzato di tipo Ty.
template <class Ty>
struct atomic;
Membri
Costruttori pubblici
Nome |
Descrizione |
---|---|
Costruisce un oggetto atomico. |
Operatori pubblici
Nome |
Descrizione |
---|---|
Legge e restituisce il valore memorizzato.(metodo atomic::load) |
|
Utilizza un valore specificato per sostituire il valore memorizzato.(metodo atomic::store) |
|
Incrementa il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore. |
|
Aggiunge un valore specificato per il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore. |
|
Decrementa il valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore. |
|
Sottrae un valore specificato dal valore memorizzato.Utilizzata solo da specializzazioni integrale e puntatore. |
|
Esegue un bit per bit and su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale. |
|
Esegue un bit per bit or su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale. |
|
Esegue un bit per bit exclusive or su un valore specificato e il valore memorizzato.Utilizzata solo da specializzazioni integrale. |
Metodi pubblici
Nome |
Descrizione |
---|---|
Esegue un atomic_compare_and_exchange operazione su this e restituisce il risultato. |
|
Esegue un weak_atomic_compare_and_exchange operazione su this e restituisce il risultato. |
|
Aggiunge un valore specificato per il valore memorizzato. |
|
Esegue un bit per bit and su un valore specificato e il valore memorizzato. |
|
Esegue un bit per bit or su un valore specificato e il valore memorizzato. |
|
Sottrae un valore specificato dal valore memorizzato. |
|
Esegue un bit per bit exclusive or su un valore specificato e il valore memorizzato. |
|
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. |
|
Legge e restituisce il valore memorizzato. |
|
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