411 REFERENCE · Wikibooks
C++ Programming/Programming Languages/C++/Code/Keywords
Reference material by Wikibooks contributors. This retains its source identity and is not 411 news reporting.
ISO C++ keywords
The C++98 standard recognized the following keywords:
and
and_eq
asm
auto
bitand
bitor
bool
break
case
catch
char
class
compl
const
const_cast
continue
default
delete
do
double
dynamic_cast
else
enum
explicit
export
extern
false
float
for
friend
goto
if
inline
int
long
mutable
namespace
new
not
not_eq
operator
or
or_eq
private
protected
public
register
reinterpret_cast
return
short
signed
sizeof
static
static_cast
struct
switch
template
this
throw
true
try
typedef
typeid
typename
union
unsigned
using
virtual
void
volatile
wchar_t
while
xor
xor_eq
Specific compilers may (in a non-standard compliant mode) also treat some other words as keywords, including cdecl, far, fortran, huge, interrupt, near, pascal, typeof. Old compilers may recognize the overload keyword, an anachronism that has been removed from the language.
The current revision of C++, known as C++11, added some keywords:
alignas
alignof
char16_t
char32_t
constexpr
decltype
noexcept
nullptr
static_assert
thread_local
C++11 also added two special words which act like keywords in some contexts, but can be used as ordinary identifiers most of the time:
final
override
It would be bad practice to use these as identifiers when writing new code.
The C++98 keywords auto, default, delete and using have additional or changed uses in C++11.
Some old C++98 compilers may not recognize some or all of the following keywords:
and
and_eq
bitand
bitor
bool
catch
compl
const_cast
dynamic_cast
explicit
export
false
mutable
namespace
not
not_eq
or
or_eq
reinterpret_cast
static_cast
template
throw
true
try
typeid
typename
using
wchar_t
xor
xor_eq
C++ reserved identifiers
Some "nonstandard" identifiers are reserved for distinct uses, to avoid conflicts on the naming of identifiers by vendors, library creators and users in general.
Reserved identifiers include keywords with two consecutive underscores (__), all that start with an underscore followed by an uppercase letter and some other categories of reserved identifiers carried over from the C library specification.
A list of C reserved identifiers can be found at the Internet Wayback Machine archived page:
http://web.archive.org/web/20040209031039/http://oakroadsystems.com/tech/c-predef.htm#ReservedIdentifiers
It would be nice to list those C reserved identifiers, for the moment All Standard C Library Functions have already been listed C++ Programming
C++ Programming: Language Keywords