Namensräume
Varianten
Aktionen

C++ Schlüsselwörter

Von cppreference.com
< cpp
 
 
C++ Sprache
Allgemeine Themen
Schlüsselwörter
Escape-Sequenzen
Kontrollfluss
Bedingte Ausführungsaussagen
if
Iterationsanweisungen (Schleifen)
for
Bereichs-for (C++11)
Sprunganweisungen
Funktionen
Funktionsdeklaration
Lambda-Funktionsausdruck
inline-Spezifizierer
Dynamische Ausnahmespezifikationen (bis C++17*)
noexcept-Spezifizierer (C++11)
Ausnahmen
Namensräume
Typen
Spezifizierer
const/volatile
decltype (C++11)
auto (C++11)
constexpr (C++11)
consteval (C++20)
constinit (C++20)
Speicherdauer-Spezifizierer
Initialisierung
Ausdrücke
Alternative Darstellungen
Literale
Boolesch - Ganzzahl - Gleitkommazahl
Zeichen - String - nullptr (C++11)
Benutzerdefinierte (C++11)
Dienstprogramme
Attribute (C++11)
Typen
typedef-Deklaration
Typalias-Deklaration (C++11)
Umwandlungen
Speicherzuweisung
Klassen
Klassenspezifische Funktionseigenschaften
explicit (C++11)
static

Spezielle Member-Funktionen
Templates
Sonstiges
 
 

Dies ist eine Liste der reservierten Schlüsselwörter in C++. Da sie von der Sprache verwendet werden, stehen diese Schlüsselwörter nicht zur Neudefinition oder Überladung zur Verfügung. Als Ausnahme gelten sie nicht als reserviert in Attributen (ausgenommen Attributargumentlisten).(seit C++11)

A – C D – P R – Z

alignas (C++11)
alignof (C++11)
und
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 (reflection 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 hinzugefügt in C++11.
  • (2) — neue Bedeutung hinzugefügt in C++14.
  • (3) — Bedeutung geändert oder neue Bedeutung hinzugefügt in C++17.
  • (4) — Bedeutung geändert oder neue Bedeutung hinzugefügt in C++20.
  • (5) — neue Bedeutung hinzugefügt in C++23.

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

Zusätzlich zu den Schlüsselwörtern gibt es *Bezeichner mit besonderer Bedeutung*, die als Namen von Objekten oder Funktionen verwendet werden können, aber in bestimmten Kontexten eine besondere 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 doppelten Unterstrich __ an beliebiger Stelle enthalten, und jeder Bezeichner, der mit einem Unterstrich gefolgt von einem Großbuchstaben beginnt, immer reserviert. 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 die Namen der Standard-C++-Bibliothek zu platzieren. Regeln zum Hinzufügen von Namen zu ihm finden Sie unter Erweiterung von Namensraum std.

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

(seit C++11)

Die folgenden Token werden vom Präprozessor im Kontext einer Präprozessor-Direktive erkannt

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)

Die folgenden Token werden vom Präprozessor *außerhalb* des Kontextes einer Präprozessor-Direktive erkannt

_Pragma (C++11)

[bearbeiten] Siehe auch

C-Dokumentation für C-Schlüsselwörter