Namespaces
Variants

C++ keywords

From cppreference.net
C++ language
General topics
Flow control
Conditional execution statements
Iteration statements (loops)
Jump statements
Functions
Function declaration
Lambda function expression
inline specifier
Dynamic exception specifications ( until C++17* )
noexcept specifier (C++11)
Exceptions
Namespaces
Types
Specifiers
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Storage duration specifiers
Initialization
Expressions
Alternative representations
Literals
Boolean - Integer - Floating-point
Character - String - nullptr (C++11)
User-defined (C++11)
Utilities
Attributes (C++11)
Types
typedef declaration
Type alias declaration (C++11)
Casts
Memory allocation
Classes
Class-specific function properties
Special member functions
Templates
Miscellaneous

Dies ist eine Liste reservierter Schlüsselwörter in C++. Da sie von der Sprache verwendet werden, sind diese Schlüsselwörter nicht für Neudefinition oder Überladen verfügbar. Als Ausnahme werden sie nicht als reserviert betrachtet in Attributen (ausgenommen Attributargumentlisten). (seit C++11)

**Anmerkung:** Da alle zu übersetzenden Texte innerhalb von ` `-Tags stehen und C++-spezifische Begriffe nicht übersetzt werden sollen, wurde kein Text in diesem Abschnitt übersetzt. Die HTML-Struktur und Formatierung bleiben vollständig erhalten.
A – C D – P R – Z

alignas (C++11)
alignof (C++11)
and
and_eq
asm
atomic_cancel (TM TS)
atomic_commit (TM TS)
atomic_noexcept (TM TS)
auto (1) (3) (4) (5)
bitand
bitor
bool
break
case
catch
char
char8_t (C++20)
char16_t (C++11)
char32_t (C++11)
class (1)
compl
concept (C++20)
const
consteval (C++20) (5)
constexpr (C++11) (3)
constinit (C++20)
const_cast
continue
contract_assert (C++26)
co_await (C++20)
co_return (C++20)
co_yield (C++20)

decltype (C++11) (2)
default (1)
delete (1)
do
double
dynamic_cast
else
enum (1)
explicit
export (1) (4)
extern (1)
false
float
for (1)
friend
goto
if (3) (5)
inline (1) (3)
int (1)
long
mutable (1)
namespace
new
noexcept (C++11)
not
not_eq
nullptr (C++11)
operator (1)
or
or_eq
private (4)
protected
public

reflexpr (Reflexion TS)
register (3)
reinterpret_cast
requires (C++20)
return
short
signed
sizeof (1)
static
static_assert (C++11)
static_cast
struct (1)
switch
synchronized (TM TS)
template
this (5)
thread_local (C++11)
throw (3) (4)
true
try
typedef
typeid
typename (3) (4)
union
unsigned
using (1) (4)
virtual
void
volatile
wchar_t
while
xor
xor_eq

  • (1) — Bedeutung geändert oder neue Bedeutung in C++11 hinzugefügt.
  • (2) — Neue Bedeutung in C++14 hinzugefügt.
  • (3) — Bedeutung geändert oder neue Bedeutung in C++17 hinzugefügt.
  • (4) — Bedeutung geändert oder neue Bedeutung in C++20 hinzugefügt.
  • (5) — Neue Bedeutung in C++23 hinzugefügt.

Beachten Sie, dass: and , bitor , or , xor , compl , bitand , and_eq , or_eq , xor_eq , not und not_eq (zusammen mit Digraphen: < % , % > , < : , : > , % : , % : % : und Trigraphen: ?? < , ?? > , ?? ( , ?? ) , ?? = , ?? / , ?? ' , ?? ! , ?? - (bis C++17) ) eine alternative Darstellungsweise für Standard-Tokens bieten . Diese Schlüsselwörter gelten auch in Attributen (außer Attributargumentlisten) als reserviert, aber einige Implementierungen behandeln sie genauso wie die anderen. (seit C++11)

Zusätzlich zu Schlüsselwörtern gibt es Bezeichner mit spezieller Bedeutung , die als Namen von Objekten oder Funktionen verwendet werden können, aber in bestimmten Kontexten eine spezielle Bedeutung haben.

final (C++11)
override (C++11)
transaction_safe (TM TS)
transaction_safe_dynamic (TM TS)
import (C++20)
module (C++20)
pre (C++26)
post (C++26)
trivially_relocatable_if_eligible (C++26)
replaceable_if_eligible (C++26)

Außerdem sind alle Bezeichner , die einen Doppelunterstrich __ an beliebiger Position enthalten, sowie jeder Bezeichner, der mit einem Unterstrich gefolgt von einem Großbuchstaben beginnt, stets reserviert, und alle Bezeichner, die mit einem Unterstrich beginnen, sind für die Verwendung als Namen im globalen Namensraum reserviert. Weitere Einzelheiten finden Sie unter Bezeichner .

Der Namensraum std wird verwendet, um Namen der Standard-C++-Bibliothek zu platzieren. Siehe Erweiterung des Namensraums std für die Regeln zum Hinzufügen von Namen.

Der Name posix ist für einen zukünftigen Top-Level-Namespace reserviert. Das Verhalten ist undefiniert, wenn ein Programm etwas in diesem Namespace deklariert oder definiert.

(since C++11)

Die folgenden Tokens werden vom Präprozessor erkannt, wenn sie im Kontext einer Präprozessor-Direktive stehen:

if
elif
else
endif

ifdef
ifndef
elifdef (C++23)
elifndef (C++23)
define
undef

include
embed (C++26)
line

error
warning (C++23)
pragma

defined
__has_include (C++17)
__has_cpp_attribute (C++20)
__has_embed (C++26)

export (C++20)
import (C++20)
module (C++20)

**Anmerkung:** Da es sich bei allen Textinhalten um C++-spezifische Schlüsselwörter und Präprozessor-Direktiven handelt, die gemäß den Anweisungen nicht übersetzt werden dürfen, bleibt der gesamte Inhalt unverändert. Die HTML-Struktur und Formatierung wurden beibehalten.

Die folgenden Tokens werden vom Präprozessor außerhalb des Kontexts einer Präprozessor-Direktive erkannt:

_Pragma (C++11)

Siehe auch

C-Dokumentation für Schlüsselwörter