Partager via


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

Hh874651.collapse_all(fr-fr,VS.110).gifConstructeurs publics

Nom

Description

constructeur atomic::atomic

Construit un objet atomique.

Hh874651.collapse_all(fr-fr,VS.110).gifOpérateurs publics

Nom

Description

opérateur de Ty d'atomic::operator

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

cbegin (méthode)

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

opérateur d'atomic::operator++

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

opérateur d'atomic::operator+=

Ajoute la valeur spécifiée à la valeur stockée.Utilisé uniquement par les spécialisations intégrale et pointeur.

atomic::operator-- opérateur

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

opérateur d'atomic::operator-=

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

opérateur d'atomic::operator&=

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.

atomic::operator|L'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égrale.

opérateur d'atomic::operator^=

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.

Hh874651.collapse_all(fr-fr,VS.110).gifMéthodes publiques

Nom

Description

méthode d'atomic::compare_exchange_strong

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

méthode d'atomic::compare_exchange_weak

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

méthode d'atomic::fetch_add

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

méthode d'atomic::fetch_and

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

méthode d'atomic::fetch_or

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

méthode d'atomic::fetch_sub

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

méthode d'atomic::fetch_xor

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

méthode d'atomic::is_lock_free

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.

méthode d'atomic::load

Lit et retourne la valeur stockée.

méthode d'atomic::store

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

Voir aussi

Référence

<atomic>

Autres ressources

Fichiers d'en-tête