◐ Shell
clean mode source ↗

Ключевые слова C++ — cppreference.com

Материал из cppreference.com

Это список зарезервированных ключевых слов в C++. Так как эти слова используются языком, они недоступны для переопределения или перегрузки. В виде исключения они не считаются зарезервированными в атрибутах (исключая списки аргументов атрибутов). (начиная с C++11)

A – C D – P R – Z

alignas (C++11)
alignof (C++11)
and
and_eq
asm
atomic_cancel (ТС TM)
atomic_commit (ТС TM)
atomic_noexcept (ТС TM)
auto (1) (2) (3) (4)
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)
constexpr (C++11)
constinit (C++20)
const_cast
continue
co_await (C++20)
co_return (C++20)
co_yield (C++20)

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

reflexpr (ТС рефлексии)
register(2)
reinterpret_cast
requires (C++20)
return
short
signed
sizeof (1)
static
static_assert (C++11)
static_cast
struct (1)
switch
synchronized (ТС TM)
template
this (4)
thread_local (C++11)
throw
true
try
typedef
typeid
typename
union
unsigned
using (1)
virtual
void
volatile
wchar_t
while
xor
xor_eq

  • (1) — значение изменилось или добавлено новое значение в C++11.
  • (2) — значение изменилось или добавлено новое значение в C++17.
  • (3) — значение изменилось или добавлено новое значение в C++20.
  • (4) — добавлено новое значение в C++23.

Обратите внимание на то, что and, bitor, or, xor, compl, bitand, and_eq, or_eq, xor_eq, not и not_eq (наряду с диграфами <%, %>, <:, :>, %: и %:%:) обеспечивают альтернативный способ представления стандартных лексем. Эти ключевые слова также считаются зарезервированными в атрибутах (исключая списки аргументов атрибутов), но некоторые реализации обрабатывают их так же, как и другие. (начиная с C++11)

В дополнение к ключевым словам существует несколько идентификаторов с особыми значениями, которые могут быть использованы в качестве имён объектов или функций, но имеют особое значение в определенных контекстах.

Кроме того, каждый идентификатор, который содержит двойное подчеркивание __ или начинается с символа подчеркивания, за которым следует заглавная буква, всегда зарезервирован и каждый идентификатор, который начинается с символа подчеркивания зарезервирован для использования, как имя в глобальном пространстве имён. Смотрите идентификаторы для более детальной информации.

Пространство имён std используется, чтобы разместить имена стандартной библиотеки C++. Смотрите Расширение пространства имён std для получения правил добавления имён в неё.

Имя posix зарезервировано для будущего пространства имён верхнего уровня. Поведение не определено, если программа декларирует или объявляет любое из этих пространств имён.

(начиная с C++11)

Следующие маркеры распознаются препроцессором, когда находятся в контексте директивы препроцессора:

if
elif
else
endif

ifdef
ifndef
define
undef

include
line
error
pragma

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

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

Следующие маркеры распознаются препроцессором вне контекста директивы препроцессора:

Смотрите также