Punctuation
From cppreference.net
Voici les symboles de ponctuation en C++. La signification de chaque symbole est détaillée dans les pages liées.
Opérateurs de préprocesseur
Les opérateurs de prétraitement sont reconnus par les préprocesseurs .
# (incluant % : )
- Introduire une directive de préprocesseur .
- L' opérateur de préprocesseur pour la stringification .
## (incluant % : % : )
Opérateurs et ponctuateurs à un seul caractère
{ et } (incluant < % et % > )
- Dans une classe , délimite la spécification des membres .
- Dans une énumération , délimite la liste des énumérateurs.
- Délimite une instruction composée . L'instruction composée peut faire partie de
-
- une définition de fonction
- un try bloc
| (depuis C++11) |
- Fait partie de la syntaxe d'initialisation d'agrégat (jusqu'en C++11) syntaxe d'initialisation par liste (depuis C++11) d'un initialiseur .
- Dans une définition d'espace de noms , délimite le corps de l'espace de noms.
- Dans une spécification de liaison de langage , délimite les déclarations.
|
(depuis C++20) |
[ et ] (incluant < : et : > )
- Opérateur d'indice ; partie de operator [ ] dans la surcharge d'opérateur .
- Partie de le déclarateur de tableau dans une déclaration ou un identifiant de type (par ex. dans une new expression ).
- Partie de new [ ] opérateur dans la surcharge d'opérateur (fonction d'allocation) .
- Partie de delete [ ] opérateur dans l'expression delete et la surcharge d'opérateur (fonction de désallocation) .
|
(depuis C++11) |
|
(depuis C++17) |
|
(depuis C++26) |
( et )
- Dans une expression, indique le regroupement .
- Opérateur d'appel de fonction ; partie de operator ( ) dans la surcharge d'opérateur .
- Dans un cast de type style fonction , délimite l'expression/les initialiseurs.
-
Dans un
static_cast,const_cast,reinterpret_cast, oudynamic_cast, délimite l'expression. - Délimite l'opérande des opérateurs suivants :
`, qui doivent être préservées selon vos instructions. Les termes C++ `typeid` et `sizeof` sont conservés dans leur forme originale.
| (depuis C++11) |
- Dans une expression de placement new , délimiter les arguments de placement.
- Dans une expression new , délimiter optionnellement le type-id.
- Dans une expression new , délimiter les initialiseurs.
- Dans un cast de style C , délimiter le type-id.
- Dans une déclaration ou un type-id , indiquer le regroupement.
- Délimiter la liste de paramètres dans
-
- un déclarateur de fonction (dans une déclaration ou un type-id )
| (depuis C++11) | |
| (depuis C++17) | |
| (depuis C++20) |
- Fait partie de la syntaxe d'initialisation directe d'un initialiseur .
- Dans une déclaration asm , délimite le littéral de chaîne.
- Dans une liste d'initialisation de membre , délimite les initialiseurs d'une base ou d'un membre.
- Délimite la clause de contrôle d'une instruction de sélection ou d'itération, incluant :
| (depuis C++11) |
- Dans un gestionnaire , délimitez la déclaration du paramètre.
- Dans une définition de macro de type fonction , délimitez les paramètres de la macro.
- Dans un appel de macro de type fonction , délimitez les arguments de la macro ou empêchez les virgules d'être interprétés comme séparateurs d'arguments.
-
Partie d'un opérateur de préprocesseur
defined,__has_include(depuis C++17) ,__has_cpp_attribute(depuis C++20) .
|
(depuis C++11) | ||
|
(depuis C++14) | ||
|
(depuis C++17) | ||
|
(depuis C++20) |
;
- Indiquer la fin de
-
- une instruction
- une déclaration ou déclaration de membre
|
(depuis C++20) |
- Séparez la condition et la déclaration d'une for statement .
:
- Fait partie de l' opérateur conditionnel .
- Fait partie de la déclaration d'étiquette .
- Dans la clause de base d'une définition de classe , introduit la classe de base .
- Fait partie du spécificateur d'accès dans la spécification de membre.
- Dans une déclaration de membre de champ de bits , introduit la largeur.
- Dans une définition de constructeur , introduit la liste d'initialisation des membres.
|
(depuis C++11) |
|
(depuis C++17) |
|
(depuis C++20) |
?
- Fait partie de l'opérateur conditionnel .
.
|
(depuis C++20) |
~ (incluant compl )
- Opérateur de complément unaire (également appelé opérateur de négation bit à bit) ; fait partie de operator~ dans la surcharge d'opérateurs .
- Fait partie d'une expression d'identificateur pour nommer un destructeur ou pseudo-destructeur.
! (incluant not )
- Opérateur logique NON ; fait partie de operator ! dans la surcharge d'opérateurs .
|
(depuis C++23) |
+
- Opérateur unaire plus ; fait partie de operator + dans la surcharge d'opérateurs .
- Opérateur binaire plus ; fait partie de operator + dans la surcharge d'opérateurs .
-
- Opérateur moins unaire ; partie de operator - dans la surcharge d'opérateurs .
- Opérateur moins binaire ; partie de operator - dans la surcharge d'opérateurs .
*
- Opérateur d'indirection ; partie de operator * dans la surcharge d'opérateur .
- Opérateur de multiplication ; partie de operator * dans la surcharge d'opérateur .
- Opérateur pointeur ou partie de l'opérateur pointeur-vers-membre dans un déclarateur ou dans un type-id .
|
(depuis C++17) |
/
- Opérateur de division ; fait partie de operator / dans la surcharge d'opérateurs .
%
- Opérateur modulo ; fait partie de operator % dans la surcharge d'opérateur .
^ (incluant xor )
- Opérateur XOR bit à bit ; fait partie de operator ^ dans la surcharge d'opérateur .
& (incluant bitand )
- Opérateur d'adresse ; partie de operator & dans la surcharge d'opérateurs .
- Opérateur ET bit à bit ; partie de operator & dans la surcharge d'opérateurs .
- Opérateur de référence Lvalue dans un déclarateur ou dans un identifiant de type .
|
(depuis C++11) |
| (incluant bitor )
- Opérateur OU au niveau des bits ; fait partie de operator | dans la surcharge d'opérateurs .
=
- Opérateur d'assignation simple ; partie de operator = dans la surcharge d'opérateur , qui peut être une fonction membre spéciale ( opérateur d'assignation de copie ou opérateur d'assignation de déplacement (depuis C++11) ).
- Partie de la initialisation par copie et de la initialisation d'agrégat (jusqu'à C++11) initialisation de liste par copie (depuis C++11) syntaxe d'un initialiseur .
- Dans une déclaration de fonction , introduit un argument par défaut .
- Dans une liste de paramètres de template , introduit un argument de template par défaut .
- Dans une définition d'alias de namespace , sépare l'alias et le namespace aliasé.
- Dans une définition d'énumération , introduit la valeur de l'énumérateur.
- Partie du spécificateur pur dans une déclaration de fonction virtuelle pure .
|
(depuis C++11) |
|
(depuis C++20) |
<
- Opérateur inférieur à ; fait partie de operator < dans la surcharge d'opérateur .
-
Dans un
static_cast,const_cast,reinterpret_cast, oudynamic_cast, introduit le type-id. - Introduit une liste d'arguments de template .
- Introduit une liste de paramètres de template dans
| (depuis C++20) |
- Faisant partie de template <> dans déclaration de spécialisation de modèle .
- Introduire un nom d'en-tête dans
| (depuis C++17) | |
| (depuis C++20) |
>
- Opérateur supérieur à ; fait partie de operator > dans la surcharge d'opérateurs .
-
static_cast,const_cast,reinterpret_cast, oudynamic_cast, indiquent la fin du type-id. - Indiquent la fin d'une liste d'arguments de template .
- Indiquent la fin d'une liste de paramètres de template dans
| (depuis C++20) |
- Faisant partie de template <> dans déclaration de spécialisation de modèle .
- Indique la fin d'un nom d'en-tête dans
| (depuis C++17) | |
| (depuis C++20) |
,
- Opérateur virgule ; partie de operator, dans la surcharge d'opérateurs .
- Séparateur de liste dans
-
- la liste des déclarateurs dans une déclaration
- la liste d'initialisation dans une initialisation
- la liste des arguments de placement dans un placement new
- la liste des arguments dans une expression d'appel de fonction
- la liste des énumérateurs dans une déclaration enum
- la liste des classes de base dans une déclaration de classe
- la liste d'initialisation des membres dans une définition de constructeur
- une liste de paramètres de fonction
- une liste de paramètres de template
- une liste d'arguments de template
|
(depuis C++11) |
|
(depuis C++17) |
|
(depuis C++23) |
-
- la liste des paramètres de macro dans une définition de macro de type fonction
- la liste des arguments de macro dans une invocation de macro de type fonction , sauf si elle se trouve entre les parenthèses d'un argument
|
(depuis C++11) |
Opérateurs et ponctuateurs multi-caractères
...
- Dans la liste de paramètres d'un déclarateur de fonction ou d'une expression lambda (depuis C++11) ou d'un guide de déduction défini par l'utilisateur (depuis C++17) , signale une fonction variadique .
- Dans un gestionnaire , signale un gestionnaire universel.
|
(depuis C++11) |
|
(depuis C++26) |
::
- Opérateur de résolution de portée en
-
- un nom qualifié
- une déclaration de pointeur-vers-membre
-
une expression
newoudelete, pour indiquer que seules les fonctions d'allocation ou de désallocation globales sont recherchées
|
(since C++11) |
|
(since C++17) |
. *
- >
- Opérateur d'accès membre ; fait partie de operator - > dans la surcharge d'opérateur .
|
(depuis C++11) |
|
(depuis C++17) |
|
(depuis C++20) |
- > *
- Opérateur d'accès membre par pointeur ; fait partie de operator - > * dans la surcharge d'opérateurs .
+ =
- Opérateur d'affectation composée ; fait partie de operator + = dans la surcharge d'opérateurs .
- =
- Opérateur d'affectation composée ; fait partie de operator - = dans la surcharge d'opérateurs .
* =
- Opérateur d'affectation composée ; fait partie de operator * = dans la surcharge d'opérateurs .
/ =
- Opérateur d'affectation composée ; fait partie de operator / = dans la surcharge d'opérateurs .
% =
- Opérateur d'affectation composée ; fait partie de operator % = dans la surcharge d'opérateurs .
^ = (incluant xor_eq )
- Opérateur d'affectation composée ; fait partie de operator ^ = dans la surcharge d'opérateur .
& = (incluant and_eq )
- Opérateur d'affectation composée ; fait partie de operator & = dans la surcharge d'opérateur .
| = (incluant or_eq )
- Opérateur d'affectation composée ; fait partie de operator | = dans la surcharge d'opérateurs .
==
- Opérateur d'égalité ; fait partie de operator == dans la surcharge d'opérateur .
! = (incluant not_eq )
- Opérateur d'inégalité ; partie de operator ! = dans la surcharge d'opérateur .
<=
- Opérateur inférieur ou égal ; fait partie de operator <= dans la surcharge d'opérateurs .
>=
- Opérateur supérieur ou égal ; fait partie de operator >= dans la surcharge d'opérateurs .
<=>
|
(depuis C++20) |
&& (incluant and )
- Opérateur logique ET ; fait partie de operator && dans la surcharge d'opérateurs .
|
(depuis C++11) |
|| (incluant or )
- Opérateur logique OU ; fait partie de operator || dans la surcharge d'opérateurs .
<<
- Opérateur de décalage binaire ; fait partie de operator << dans la surcharge d'opérateur ( opérateur binaire ou opérateur d'insertion de flux ).
>>
- Opérateur de décalage binaire ; fait partie de operator >> dans la surcharge d'opérateur ( opérateur binaire ou opérateur d'extraction de flux ).
<<=
- Opérateur d'affectation composée ; fait partie de operator <<= dans la surcharge d'opérateurs .
>>=
- Opérateur d'affectation composée ; fait partie de operator >>= dans la surcharge d'opérateurs .
++
- Opérateur d'incrémentation ; fait partie de operator ++ dans la surcharge d'opérateurs .
--
- Opérateur de décrémentation ; partie de operator -- dans la surcharge d'opérateurs .
Références
- Norme C++23 (ISO/IEC 14882:2024) :
-
- 5.12 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++20 (ISO/CEI 14882:2020) :
-
- 5.12 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++17 (ISO/IEC 14882:2017) :
-
- 5.12 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++14 (ISO/CEI 14882:2014) :
-
- 2.13 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++11 (ISO/CEI 14882:2011) :
-
- 2.13 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++03 (ISO/CEI 14882:2003) :
-
- 2.12 Opérateurs et signes de ponctuation [lex.operators]
- Norme C++98 (ISO/CEI 14882:1998) :
-
- 2.12 Opérateurs et signes de ponctuation [lex.operators]
Voir aussi
| Représentations alternatives | orthographes alternatives pour certains opérateurs |
|
Documentation C
pour
Ponctuation
|
|