C++ reserves a set of words for use within the language as keywords. Keywords may not be used as program identifiers. Table 1 below lists the complete set of C++ keywords.
|
asm |
do |
if |
return |
try |
|
auto |
double |
inline |
short |
typedef |
|
bool |
dynamic_cast |
int |
signed |
typeid |
|
break |
else |
long |
sizeof |
typename |
|
case |
enum |
mutable |
static |
union |
|
catch |
explicit |
namespace |
static_cast |
unsigned |
|
char |
export |
new |
struct |
using |
|
class |
extern |
operator |
switch |
virtual |
|
const |
false |
private |
template |
void |
|
const_cast |
float |
protected |
this |
volatile |
|
continue |
for |
public |
throw |
wchar_t |
|
default |
friend |
register |
true |
while |
|
delete |
goto |
reinterpret_cast |
C++ also reserves a number of words that can be used as alternative names for various operators. These alternative names are provided to support character sets that do not support the standard set of C++ operator symbols. These names, listed in Table 2 below, also may not be used as identifiers:
|
and |
bitand |
compl |
not_eq |
or_eq |
xor_eq |
|
and_eq |
bitor |
not |
or |
xor |
In addition to the keywords, the standard also reserves a set of identifiers for use in the library. Identifiers cannot contain two consecutive underscores, nor can an identifier begin with an underscore followed immediately by an upper-case letter. Certain identifiers those that are defined outside a function may not begin with an underscore.