std::atomic_ref<T>:: operator++,++ (int) ,--,-- (int)
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(C++26)
|
||||
|
Operations for arithmetic types
(except
bool
and pointer-to-object)
|
||||
|
Operations for integral types
(except
bool
and pointer-to-object)
|
||||
|
(C++26)
|
||||
|
(C++26)
|
||||
|
atomic_ref::operator++
atomic_ref::operator++(int)
atomic_ref::operator--
atomic_ref::operator--(int)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
| Constants | ||||
|
Fourni uniquement lorsque
T
est un type entier autre que
cv
bool
ou un type pointeur-vers-objet
|
||
|
value_type operator
++
(
)
const
noexcept
;
|
(1) | (depuis C++20) |
|
value_type operator
++
(
int
)
const
noexcept
;
|
(2) | (depuis C++20) |
|
value_type operator
--
(
)
const
noexcept
;
|
(3) | (depuis C++20) |
|
value_type operator
--
(
int
)
const
noexcept
;
|
(4) | (depuis C++20) |
Incrémente ou décrémente atomiquement la valeur actuelle de l'objet référencé. Ces opérations sont des opérations de lecture-modification-écriture.
- Pour les types entiers signés, l'arithmétique est définie pour utiliser la représentation en complément à deux. Il n'y a pas de résultats indéfinis.
- Pour les types pointeur-vers-objet, le résultat peut être une adresse indéfinie, mais les opérations n'ont par ailleurs aucun comportement indéfini. Le programme est mal formé si std:: remove_pointer_t < T > n'est pas un type d'objet complet.
Ces surcharges participent à la résolution de surcharge seulement si std:: is_const_v < T > est false .
Table des matières |
Valeur de retour
Notes
Contrairement à la plupart des opérateurs de pré-incrémentation et pré-décrémentation, les opérateurs de pré-incrémentation et pré-décrémentation pour
atomic_ref
ne renvoient pas une référence à l'objet modifié. Ils renvoient plutôt une copie de la valeur stockée.
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
|
LWG 3508
( P3323R1 ) |
C++20 | les opérateurs d'incrémentation et de décrémentation n'avaient pas de sens pour const T |
contraint pour n'accepter que les
T
non-const
|
Voir aussi
|
ajoute atomiquement l'argument à la valeur stockée dans l'objet référencé et obtient la valeur détenue précédemment
(fonction membre publique) |
|
|
soustrait atomiquement l'argument de la valeur stockée dans l'objet référencé et obtient la valeur détenue précédemment
(fonction membre publique) |
|
|
ajoute ou soustrait atomiquement de la valeur référencée
(fonction membre publique) |
|
|
effectue atomiquement un ET, OU, XOR bit à bit avec la valeur référencée
(fonction membre publique) |