structure atomique
Décrit un objet qui effectue des opérations atomiques sur une valeur stockée de type Ty.
template <class Ty>
struct atomic;
Membres
Constructeurs publics
Nom |
Description |
---|---|
Construit un objet atomique. |
Opérateurs publics
Nom |
Description |
---|---|
Lit et retourne la valeur stockée.(méthode d'atomic::load) |
|
Utilise une valeur spécifiée pour remplacer la valeur stockée.(méthode d'atomic::store) |
|
Incrémente la valeur stockée.Utilisé uniquement par les spécialisations intégrale et pointeur. |
|
Ajoute la valeur spécifiée à la valeur stockée.Utilisé uniquement par les spécialisations intégrale et pointeur. |
|
Décrémente la valeur stockée.Utilisé uniquement par les spécialisations intégrale et pointeur. |
|
Soustrait une valeur spécifiée à partir de la valeur stockée.Utilisé uniquement par les spécialisations intégrale et pointeur. |
|
Effectue une opération de bits and sur une valeur spécifiée et la valeur stockée.Utilisé uniquement par les spécialisations intégrale. |
|
Effectue une opération de bits or sur une valeur spécifiée et la valeur stockée.Utilisé uniquement par les spécialisations intégrale. |
|
Effectue une opération de bits exclusive or sur une valeur spécifiée et la valeur stockée.Utilisé uniquement par les spécialisations intégrale. |
Méthodes publiques
Nom |
Description |
---|---|
Effectue une atomic_compare_and_exchange opération sur this et retourne le résultat. |
|
Effectue une weak_atomic_compare_and_exchange opération sur this et retourne le résultat. |
|
Ajoute la valeur spécifiée à la valeur stockée. |
|
Effectue une opération de bits and sur une valeur spécifiée et la valeur stockée. |
|
Effectue une opération de bits or sur une valeur spécifiée et la valeur stockée. |
|
Soustrait une valeur spécifiée à partir de la valeur stockée. |
|
Effectue une opération de bits exclusive or sur une valeur spécifiée et la valeur stockée. |
|
Spécifie si les opérations atomiques sur this sont verrou libre.Est un type atomique verrou libre si aucune opération atomique sur ce type d'utiliser des verrous. |
|
Lit et retourne la valeur stockée. |
|
Utilise une valeur spécifiée pour remplacer la valeur stockée. |
Notes
Le type de Ty doit être plus simplement reproductible.Autrement dit, à l'aide de memcpy pour copier ses octets doit produire une valide Ty objet qui compare une valeur égale à l'objet d'origine.Le compare_exchange_weak et compare_exchange_strong utilisation de fonctions membres memcmp pour déterminer si les deux Ty les valeurs sont égales.Ces fonctions n'utilisera pas un Ty-défini par operator==.Les fonctions membres de atomic utiliser memcpy pour copier les valeurs de type Ty.
Une spécialisation partielle, atomic<Ty *>, il n'existe pour tous les types de pointeur.La spécialisation permet l'ajout d'un décalage à la valeur du pointeur managé ou la soustraction d'un offset à partir de celui-ci.Les opérations arithmétiques prennent un argument de type ptrdiff_t et régler cet argument en fonction de la taille de Ty pour être cohérent avec l'adresse ordinaire arithmétique.
Il existe une spécialisation pour tous les types intégraux, sauf bool.Chaque spécialisation fournit un ensemble complet de méthodes pour les opérations arithmétiques et logiques atomiques.
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> |
Spécialisations intégrale sont dérivées correspondant **atomic_**integral types.Par exemple, atomic<unsigned int> est dérivé de atomic_uint.
Configuration requise
En-tête : atomique
Espace de noms : std