Punctuation
From cppreference.net
Dies sind die Interpunktionssymbole in C++. Die Bedeutung jedes Symbols wird auf den verlinkten Seiten detailliert beschrieben.
Präprozessor-Operatoren
Präprozessoroperatoren werden von Präprozessoren erkannt.
# (einschließlich % : )
- Führen Sie eine Präprozessor-Direktive ein.
- Der Präprozessor-Operator für Stringifizierung .
## (einschließlich % : % : )
Einzelzeichen-Operatoren und Interpunktionszeichen
{ und } (einschließlich < % und % > )
- In einer class -Definition begrenzt es die member specification .
- In einer enumeration -Definition begrenzt es die Enumerator-Liste.
- Begrenzt einen compound statement . Der compound statement kann Teil sein von
-
- eine Funktionsdefinition
- ein try Block
|
(seit C++11) |
- Teil der Aggregate-Initialisierung (bis C++11) Listeninitialisierung (seit C++11) Syntax eines Initialisierers .
- In einer Namespace-Definition , begrenzt den Namespace-Body.
- In einer Sprachbindungsspezifikation , begrenzt die Deklarationen.
|
(seit C++20) |
[ und ] (einschließlich < : und : > )
- Subscript-Operator ; Teil von operator [ ] in Operator-Überladung .
- Teil von Array-Deklarator in einer Deklaration oder einer Typ-ID (z.B. in einem new Ausdruck ).
- Teil von new [ ] Operator in Operator-Überladung (Allokationsfunktion) .
- Teil von delete [ ] Operator in Delete-Ausdruck und Operator-Überladung (Deallokationsfunktion) .
|
(seit C++11) |
|
(seit C++17) |
|
(seit C++26) |
( und )
- In einem Ausdruck, Gruppierung anzeigen .
- Funktionsaufruf-Operator ; Teil von operator ( ) in Operatorüberladung .
- In einer funktionsstil-Typskonvertierung , den Ausdruck/Initialisierer abgrenzen.
-
In einem
static_cast,const_cast,reinterpret_cast, oderdynamic_cast, den Ausdruck abgrenzen. - Den Operanden der folgenden Operatoren abgrenzen:
| (seit C++11) |
- In einem Placement- new -Ausdruck , begrenzen Sie die Platzierungsargumente.
- In einem new -Ausdruck , optional den Typ-Bezeichner begrenzen.
- In einem new -Ausdruck , die Initialisierer begrenzen.
- In einer C-Art Umwandlung , den Typ-Bezeichner begrenzen.
- In einer Deklaration oder einer Typ-Bezeichnung , Gruppierung anzeigen.
- Die Parameterliste in
-
- ein Function Declarator (in einer Deklaration oder einem Type-ID )
|
(seit C++11) |
| (seit C++17) | |
| (seit C++20) |
- Teil der Direct-Initialization -Syntax eines Initializers .
- In einer asm-Deklaration den String-Literal begrenzen.
- In einer Member-Initializer-Liste die Initialisierer für eine Basis oder ein Member begrenzen.
- Den kontrollierenden Ausdruck einer Auswahlanweisung oder Iterationsanweisung begrenzen, einschließlich:
| (seit C++11) |
- In einem Handler , begrenzen Sie die Parameterdeklaration.
- In einer funktionsähnlichen Makrodefinition , begrenzen Sie die Makroparameter.
- In einem funktionsähnlichen Makroaufruf , begrenzen Sie die Makroargumente oder verhindern Sie, dass Kommas als Argumenttrenner interpretiert werden.
-
Teil eines
defined,__has_include(since C++17) ,__has_cpp_attribute(since C++20) Präprozessoroperators.
|
(seit C++11) | ||
|
(seit C++14) | ||
|
(seit C++17) | ||
|
(seit C++20) |
;
- Das Ende anzeigen
-
- eine Anweisung
- eine Deklaration oder Member-Deklaration
|
(seit C++20) |
- Trennen Sie die Bedingung und die Anweisung einer for Anweisung .
:
- Teil des Bedingungsoperators .
- Teil der Markendeklaration .
- In der Basisklassenliste einer Klassendefinition , führt die Basisklasse ein.
- Teil des Zugriffsspezifizierers in der Memberspezifikation.
- In einer Bitfeld-Memberdeklaration , führt die Breite ein.
- In einer Konstruktor -Definition, führt die Member-Initialisierungsliste ein.
|
(seit C++11) |
|
(seit C++17) |
|
(seit C++20) |
?
- Teil des Bedingungsoperators .
.
|
(since C++20) |
~ (einschließlich compl )
- Unärer Komplementoperator (auch bekannt als bitweiser NOT-Operator) ; Teil von operator~ in Operatorüberladung .
- Teil eines Identifikatorausdrucks zur Benennung eines Destruktors oder Pseudo-Destruktors.
! (einschließlich not )
- Logischer NOT-Operator ; Teil von operator ! in Operatorüberladung .
|
(seit C++23) |
+
- Unärer Plus-Operator ; Teil von operator + in Operatorüberladung .
- Binärer Plus-Operator ; Teil von operator + in Operatorüberladung .
-
- Unärer Minus-Operator ; Teil von operator - in Operatorüberladung .
- Binärer Minus-Operator ; Teil von operator - in Operatorüberladung .
*
- Indirektionsoperator ; Teil von operator * in Operatorüberladung .
- Multiplikationsoperator ; Teil von operator * in Operatorüberladung .
- Zeigeroperator oder Teil des Zeiger-auf-Member-Operators in einem Deklarator oder in einer Typ-ID .
|
(seit C++17) |
/
- Divisionsoperator ; Teil von operator / in Operatorüberladung .
%
- Modulo-Operator ; Teil von operator % in Operatorüberladung .
^ (einschließlich xor )
- Bitweises XOR-Operator ; Teil von operator ^ in Operatorüberladung .
& (einschließlich bitand )
- Adressoperator ; Teil von operator & in Operatorüberladung .
- Bitweiser UND-Operator ; Teil von operator & in Operatorüberladung .
- Lvalue-Referenzoperator in einem Deklarator oder in einer Typ-ID .
|
(seit C++11) |
| (einschließlich bitor )
- Bitweise ODER-Operator ; Teil von operator | in Operatorüberladung .
=
- Einfacher Zuweisungsoperator ; Teil von operator = in Operatorüberladung , was eine spezielle Elementfunktion sein könnte ( Kopierzuweisungsoperator oder Verschiebungszuweisungsoperator (seit C++11) ).
- Teil der Kopierinitialisierung und Aggregatinitialisierung (bis C++11) Kopierlisteninitialisierung (seit C++11) -Syntax eines Initialisierers .
- In einer Funktionsdeklaration führt es ein Standardargument ein.
- In einer Template-Parameterliste führt es ein Standard-Template-Argument ein.
- In einer Namespace-Alias-Definition trennt es den Alias und den aliased Namespace.
- In einer Enum-Definition führt es den Wert des Enumerators ein.
- Teil von pure-specifier in einer rein virtuellen Funktionsdeklaration .
|
(seit C++11) |
|
(seit C++20) |
<
- Kleiner-als-Operator ; Teil von operator < in Operator-Überladung .
-
In einem
static_cast,const_cast,reinterpret_castoderdynamic_cast, führt den Typ-Bezeichner ein. - Führt eine Template-Argumentliste ein.
- Führt eine Template-Parameterliste ein in
-
- eine template declaration
- eine partial specialization
|
(seit C++20) |
- Teil von template <> in Template-Spezialisierungsdeklaration .
- Führt einen Header-Namen ein in
-
- eine #include Direktive
| (seit C++17) | |
|
(seit C++20) |
>
- Größer-als-Operator ; Teil von operator > in Operatorüberladung .
-
static_cast,const_cast,reinterpret_cast, oderdynamic_cast, markiert das Ende von type-id. - Markiert das Ende einer Template-Argumentliste .
- Markiert das Ende einer Template-Parameterliste in
-
- eine template declaration
- eine partial specialization
|
(seit C++20) |
- Teil von template <> in Template-Spezialisierungsdeklaration .
- Kennzeichnet das Ende eines Header-Namens in
-
- eine #include Direktive
| (seit C++17) | |
|
(seit C++20) |
,
- Komma-Operator ; Teil von operator, in Operator-Überladung .
- Listen-Trennzeichen in
-
- die Deklaratorliste in einer Deklaration
- Initialisiererliste in der Initialisierung
- die Platzierungsargumentliste in einem placement new
- die Argumentliste in einem Funktionsaufrufausdruck
- die Enumeratorliste in einer enum -Deklaration
- die Basisklassen -Liste in einer class -Deklaration
- die Memberinitialisiererliste in einer Konstruktor -Definition
- eine Funktionsparameterliste
- eine Template-Parameterliste
- eine Template-Argumentliste
|
(seit C++11) |
|
(seit C++17) |
|
(seit C++23) |
-
- die Makroparameterliste in einer funktionsähnlichen Makrodefinition
- die Makroargumentliste in einem funktionsähnlichen Makroaufruf , sofern sie nicht zwischen den Klammern eines Arguments gefunden wird
|
(since C++11) |
Mehrzeichen-Operatoren und Interpunktionszeichen
...
- In der Parameterliste eines Funktionsdeklarators oder Lambda-Ausdrucks (seit C++11) oder benutzerdefinierten Ableitungsleitfadens (seit C++17) , kennzeichnet es eine variadische Funktion .
- In einem Handler , kennzeichnet es einen Catch-all-Handler.
|
(since C++11) |
|
(since C++26) |
::
- Scope-Auflösungsoperator in
-
- ein qualifizierter Name
- eine Zeiger-auf-Mitglied-Deklaration
-
ein
newoderdeleteAusdruck, um anzuzeigen, dass nur globale Allokations- oder Deallokationsfunktionen gesucht werden
|
(since C++11) |
|
(since C++17) |
. *
- >
- Elementzugriffsoperator ; Teil von operator - > in Operatorüberladung .
|
(since C++11) |
|
(since C++17) |
|
(since C++20) |
- > *
- Zeiger-auf-Member-Zugriffsoperator ; Teil von operator - > * in Operatorüberladung .
+ =
- Zuweisungsoperator mit Zuweisung ; Teil von operator + = in Operatorüberladung .
- =
- Zuweisungsoperator für zusammengesetzte Operationen ; Teil von operator - = in Operatorüberladung .
* =
- Zuweisungsoperator mit Berechnung ; Teil von operator * = in Operatorüberladung .
/ =
- Zuweisungsoperator mit Zuweisung ; Teil von operator / = in Operatorüberladung .
% =
- Zuweisungsoperator mit Rechenoperation ; Teil von operator % = in Operatorüberladung .
^ = (einschließlich xor_eq )
- Zuweisungsoperator mit Rechenoperation ; Teil von operator ^ = in Operatorüberladung .
& = (einschließlich and_eq )
- Zuweisungsoperator mit Zusatzfunktion ; Teil von operator & = in Operatorüberladung .
| = (einschließlich or_eq )
- Zuweisungsoperator mit Zuweisung ; Teil von operator | = in Operatorüberladung .
==
- Gleichheitsoperator ; Teil von operator == in Operatorüberladung .
! = (einschließlich not_eq )
- Ungleichheitsoperator ; Teil von operator ! = in Operatorüberladung .
<=
- Kleiner-oder-gleich-Operator ; Teil von operator <= in Operatorüberladung .
>=
- Größer-oder-gleich-Operator ; Teil von operator >= in Operatorüberladung .
<=>
|
(seit C++20) |
&& (einschließlich and )
- Logischer UND-Operator ; Teil von operator && in Operatorüberladung .
|
(seit C++11) |
|| (einschließlich or )
- Logischer ODER-Operator ; Teil von operator || in Operatorüberladung .
<<
- Bitweise Schiebeoperator ; Teil von operator << in Operatorüberladung ( bitweiser Operator oder Stream-Einfügeoperator ).
>>
- Bitweise Schiebeoperator ; Teil von operator >> in Operatorüberladung ( bitweiser Operator oder Stromextraktionsoperator ).
<<=
- Zuweisungsoperator mit Zuweisung ; Teil von operator <<= in Operatorüberladung .
>>=
- Zuweisungsoperator mit Berechnung ; Teil von operator >>= in Operatorüberladung .
++
- Inkrement-Operator ; Teil von operator ++ in Operatorüberladung .
--
- Dekrement-Operator ; Teil von operator -- in Operatorüberladung .
Referenzen
- C++23-Standard (ISO/IEC 14882:2024):
-
- 5.12 Operatoren und Interpunktion [lex.operators]
- C++20-Standard (ISO/IEC 14882:2020):
-
- 5.12 Operatoren und Interpunktionszeichen [lex.operators]
- C++17-Standard (ISO/IEC 14882:2017):
-
- 5.12 Operatoren und Interpunktionszeichen [lex.operators]
- C++14-Standard (ISO/IEC 14882:2014):
-
- 2.13 Operatoren und Interpunktion [lex.operators]
- C++11-Standard (ISO/IEC 14882:2011):
-
- 2.13 Operatoren und Interpunktion [lex.operators]
- C++03-Standard (ISO/IEC 14882:2003):
-
- 2.12 Operatoren und Interpunktionszeichen [lex.operators]
- C++98-Standard (ISO/IEC 14882:1998):
-
- 2.12 Operatoren und Interpunktionszeichen [lex.operators]
Siehe auch
| Alternative representations | alternative Schreibweisen für bestimmte Operatoren |
|
C documentation
für
Punctuation
|
|