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