The following keywords should not be used for anything other than their predefined purposes in the C++ language. In particular, do not use them for variable names or for programmer-defined functions. In addition to the following keywords listed, identifiers containing a double underscore (__)
are reserved for use by C++ implementations and standard libraries and should not be used in your programs.
alignas
alignof
asm
auto
bool
break
case
catch
char
class
const
const_cast
constexpr
continue
decltype
default
delete
do
double
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
if
inline
int
log
long
mutable
namespace
new
noexcept
nullptr
operator
private
protected
public
register
reinterpret_cast
return
short
signed
sizeof
static
static_assert
static_cast
struct
switch
template
this
thread_local
throw
true
try
typedef
typeid
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
These alternative representations for operators and punctuation are reserved and also should not be used otherwise.
and &&
not_eq !=
and_eq &=
or ||
bitand &
or_eq |=
bitor |
xor ^
compl ~
xor_eq ^=
not !