std::atomic_ref<T>:: operator&=,|=,^=
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 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)
|
||||
|
Operations for integral types
(except
bool
)
|
||||
|
atomic_ref::operator&=
atomic_ref::operator|=
atomic_ref::operator^=
|
||||
| Constants | ||||
|
Fourni uniquement lorsque
T
est un type entier autre que
cv
bool
|
||
|
value_type operator
&
=
(
value_type arg
)
const
noexcept
;
|
(1) | (depuis C++20) |
|
value_type operator
|
=
(
value_type arg
)
const
noexcept
;
|
(2) | (depuis C++20) |
|
value_type operator
^
=
(
value_type arg
)
const
noexcept
;
|
(3) | (depuis C++20) |
Remplace atomiquement la valeur actuelle de l'objet référencé par le résultat du calcul impliquant la valeur précédente et arg . Ces opérations sont des opérations de lecture-modification-écriture.
- operator & = effectue un ET binaire atomique. Équivalent à return fetch_and ( arg ) & arg ; .
- operator ! = effectue un OU binaire atomique. Équivalent à return fetch_or ( arg ) | arg ; .
- operator ^ = effectue un OU exclusif binaire atomique. Équivalent à return fetch_xor ( arg ) ^ arg ; .
Ces surcharges participent à la résolution de surcharge seulement si std:: is_const_v < T > est false .
Table des matières |
Paramètres
| arg | - | l'argument pour l'opération arithmétique |
Valeur de retour
La valeur résultante (c'est-à-dire le résultat de l'application de l'opérateur binaire correspondant à la valeur précédant immédiatement les effets de la fonction membre correspondante).
Notes
Contrairement à la plupart des opérateurs d'affectation composée, les opérateurs d'affectation composée pour
atomic_ref
ne renvoient pas de référence à leurs arguments de gauche. Ils renvoient plutôt une copie de la valeur stockée.
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
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'affectation composés n'avaient pas de sens pour const T |
contraint pour n'accepter que les
T
non-const
|
Voir aussi
|
effectue atomiquement un ET binaire entre l'argument et la valeur de l'objet référencé et obtient la valeur détenue précédemment
(fonction membre publique) |
|
|
effectue atomiquement un OU binaire entre l'argument et la valeur de l'objet référencé et obtient la valeur détenue précédemment
(fonction membre publique) |
|
|
effectue atomiquement un OU exclusif binaire entre l'argument et la valeur de l'objet référencé et obtient la valeur détenue précédemment
(fonction membre publique) |
|
|
incrémente ou décrémente atomiquement l'objet référencé de un
(fonction membre publique) |
|
|
ajoute ou soustrait atomiquement à la valeur référencée
(fonction membre publique) |