[lex.key] (original) (raw)

5 Lexical conventions [lex]

5.12 Keywords [lex.key]

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

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

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