Partager via


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

atomic::atomic, constructeur

Construit un objet atomique.

Op&#233;rateurs publics

Nom

Description

atomic::operator Ty, opérateur

Lit et retourne la valeur stockée. (atomic::load, méthode)

atomic::operator=, opérateur

Utilise une valeur spécifiée pour remplacer la valeur stockée. (atomic::store, méthode)

atomic::operator++, opérateur

Incrémente la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur.

atomic::operator+=, opérateur

Ajoute une valeur spécifiée à la durée stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur.

atomic::operator--, opérateur

Décrémente la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur.

atomic::operator-=, opérateur

Soustrait une valeur spécifiée de la valeur stockée. Utilisé uniquement par les spécialisations intégrales et de pointeur.

atomic::operator&=, opérateur

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.

atomic::operator|=, opérateur

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.

atomic::operator^=, opérateur

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&#233;thodes publiques

Nom

Description

atomic::compare_exchange_strong, méthode

Effectue une opération de atomic_compare_and_exchange sur this et retourne le résultat.

atomic::compare_exchange_weak, méthode

Effectue une opération de weak_atomic_compare_and_exchange sur this et retourne le résultat.

atomic::fetch_add, méthode

Ajoute une valeur spécifiée à la durée stockée.

atomic::fetch_and, méthode

Effectue une opération de bits and sur une valeur spécifiée et la valeur stockée.

atomic_fetch_or, méthode

Effectue une opération de bits or sur une valeur spécifiée et la valeur stockée.

atomic_fetch_sub, méthode

Soustrait une valeur spécifiée de la valeur stockée.

atomic::fetch_xor, méthode

Effectue une opération de bits exclusive or sur une valeur spécifiée et la valeur stockée.

atomic::is_lock_free, méthode

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.

atomic::load, méthode

Lit et retourne la valeur stockée.

atomic::store, méthode

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

Voir aussi

Référence

<atomic>

Autres ressources

Fichiers d'en-tête de bibliothèque standard C++