Files
cppdraft_translate/cppdraft/lex/key.md
2025-10-25 03:02:53 +03:00

3.1 KiB

[lex.key]

5 Lexical conventions [lex]

5.12 Keywords [lex.key]

keyword:
any identifier listed in Table 5
import-keyword
module-keyword
export-keyword

1

#

The identifiers shown in Table 5 are reserved for use as keywords (that is, they are unconditionally treated as keywords in phase 7) except in an attribute-token ([dcl.attr.grammar]).

[Note 1:

The register keyword is unused but is reserved for future use.

— end note]

Table 5 — Keywords [tab:lex.key]

🔗
alignas
constinit extern protected throw
🔗
alignof
const_cast false public true
🔗
asm
continue float register try
🔗
auto
contract_assert for reinterpret_cast typedef
🔗
bool
co_await friend requires typeid
🔗
break
co_return goto return typename
🔗
case
co_yield if short union
🔗
catch
decltype inline signed unsigned
🔗
char
default int sizeof using
🔗
char8_t
delete long static virtual
🔗
char16_t
do mutable static_assert void
🔗
char32_t
double namespace static_cast volatile
🔗
class
dynamic_cast new struct wchar_t
🔗
concept
else noexcept switch while
🔗
const
enum nullptr template
🔗
consteval
explicit operator this
🔗
constexpr
export private thread_local

2

#

Furthermore, the alternative representations shown in Table 6 for certain operators and punctuators ([lex.digraph]) are reserved and shall not be used otherwise.

Table 6 — Alternative representations [tab:lex.key.digraph]

🔗
and
and_eq bitand bitor compl not
🔗
not_eq
or or_eq xor xor_eq