alignas (since C++11)
alignof (since C++11)
and
and_eq
asm
auto(1)
bitand
bitor
bool
break
case
catch
char
char16_t(since C++11)
char32_t(since C++11)
class
compl
const
constexpr(since C++11)
const_cast
continue
decltype(since C++11)
default(1)
delete(1)
do
double
dynamic_cast
else

enum
explicit
export
extern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
noexcept(since C++11)
not
not_eq
nullptr (since C++11)
operator
or
or_eq
private
protected
public
register
reinterpret_cast

return
short
signed
sizeof
static
static_assert(since C++11)
static_cast
struct
switch
template
this
thread_local(since C++11)
throw
true
try
typedef
typeid
typename
union
unsigned
using(1)
virtual
void
volatile
wchar_t
while
xor
xor_eq

Dani AI

Generated

’s post is a list of reserved C++ keywords — words the compiler treats specially, so you can’t use them as ordinary identifiers. This is a language keyword list, not assembly (assembly uses mnemonics like MOV/ADD and very different syntax). For the authoritative, version-annotated list see cppreference.
C++ keywords — cppreference. (en.cppreference.com)

The snapshot posted in 2012 looks like an early-C++11-era list. The language has evolved since then: later standards (notably C++20 and C++23) introduced additional reserved or context-only tokens — for example modules/import, concepts/requires, coroutines (co_await/co_return/co_yield), the char8_t type, and specifiers such as consteval/constinit. cppreference’s keyword page and the per-feature pages show which standard added each token.
C++ keywords — cppreference · char8_t · Concepts / requires. (en.cppreference.com)

Practical advice to avoid surprises: do not choose identifiers that the standard reserves (avoid names with double underscores or a leading underscore followed by a capital letter), and gate code that needs newer language features with feature-test macros or by checking __cplusplus. Example pattern:

#if defined(__cpp_concepts) && __cpp_concepts >= 201907L
  // use concepts
#endif

#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L
  using u8 = char8_t;
#else
  using u8 = char;
#endif

#if __cplusplus >= 202002L
  // C++20+ specific code
#endif

See cppreference’s feature-test macros and predefined-macro documentation for the macro names and values, and the identifiers page for naming rules.
Feature testing · Predefined macros / __cplusplus · Identifiers. (en.cppreference.com)

Recommended Answers

All 2 Replies

And your question is....?

that isn't c++, it's assembly

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.