atomic, structure
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. (atomic::load, méthode) |
|
Utilise une valeur spécifiée pour remplacer la valeur stockée. (atomic::store, méthode) |
|
Incrémente la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur. |
|
Ajoute une valeur spécifiée à la durée stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur. |
|
Décrémente la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur. |
|
Soustrait une valeur spécifiée de la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de 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égrales. |
|
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égrales. |
|
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égrales. |
Méthodes publiques
Nom |
Description |
---|---|
Effectue une opération de atomic_compare_and_exchange sur this et retourne le résultat. |
|
Effectue une opération de weak_atomic_compare_and_exchange sur this et retourne le résultat. |
|
Ajoute une valeur spécifiée à la durée 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 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 sans verrouillage. Un type atomique est sans verrouillage si aucune opération atomique sur ce types n'utilise de verrou. |
|
Lit et retourne la valeur stockée. |
|
Utilise une valeur spécifiée pour remplacer la valeur stockée. |
Notes
Le type Ty doit être simplement copyable. Autrement dit, l'utilisation de memcpy pour copier ses octets doit créer un objet Ty valide qui compare une valeur égale à l'objet d'origine. Les fonctions membres compare_exchange_weak et compare_exchange_strong utilisent des memcmp pour déterminer si deux valeurs de Ty sont identiques. Ces fonctions n'utiliseront pas Ty- **operator==**défini. Les fonctions membres de atomic utilisent memcpy pour copier des valeurs de type Ty.
Une spécialisation partielle, atomic<Ty *>, existe pour tous les types de pointeur. La spécialisation permet l'ajout d'un décalage à la valeur de pointeur managée ou la soustraction d'un décalage à celle-ci. Les opérations arithmétiques prennent un argument de type ptrdiff_t et ajustent cet argument à celle d'un Ty pour être compatibles avec l'arithmétique d'adresse ordinaire.
Une spécialisation existe pour chaque type intégral sauf bool. Chaque spécialisation fournit un ensemble 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> |
Les spécialisations intégrales sont dérivées des typesintegral d'atomic_ correspondants. Par exemple, atomic<unsigned int> dérive de atomic_uint.
Configuration requise
En-tête : atomique
Espace de noms : std