This is a list of reserved keywords in C++. Since they are used by the language, these keywords are not available for re-definition (or overloading) by programmers.
| Keyword | Description | 
|---|---|
| and | alternative to && operator | 
| and_eq | alternative to &= operator | 
| asm | insert an assembly instruction | 
| auto | declare a local variable | 
| bitand | alternative to bitwise & operator | 
| bitor | alternative to | operator | 
| bool | declare a boolean variable | 
| break | break out of a loop | 
| case | a block of code in a switch statement | 
| catch | handles exceptions from throw | 
| char | declare a character variable | 
| class | declare a class | 
| compl | alternative to ~ operator | 
| const | declare immutable data or functions that do not change data | 
| const_cast | cast from const variables | 
| continue | bypass iterations of a loop | 
| default | default handler in a case statement | 
| delete | make dynamic memory available | 
| do | looping construct | 
| double | declare a double precision floating-point variable | 
| dynamic_cast | perform runtime casts | 
| else | alternate case for an if statement | 
| enum | create enumeration types | 
| explicit | only use constructors when they exactly match | 
| export | allows template definitions to be separated from their declarations | 
| extern | tell the compiler about variables defined elsewhere | 
| false | a constant representing the boolean false value | 
| float | declare a floating-point variable | 
| for | looping construct | 
| friend | grant non-member function access to private data | 
| goto | jump to a different part of the program | 
| if | execute code based on the result of a test | 
| inline | optimize calls to short functions | 
| int | declare an integer variable | 
| long | declare a long integer variable | 
| mutable | override a const variable | 
| namespace | partition the global namespace by defining a scope | 
| new | allocate dynamic memory for a new variable | 
| not | alternative to ! operator | 
| not_eq | alternative to != operator | 
| operator | create overloaded operator functions | 
| or | alternative to || operator | 
| or_eq | alternative to |= operator | 
| private | declare private members of a class | 
| protected | declare protected members of a class | 
| public | declare public members of a class | 
| register | request that a variable be optimized for speed | 
| reinterpret_cast | change the type of a variable | 
| return | return from a function | 
| short | declare a short integer variable | 
| signed | modify variable type declarations | 
| sizeof | return the size of a variable or type | 
| static | create permanent storage for a variable | 
| static_cast | perform a nonpolymorphic cast | 
| struct | define a new structure | 
| switch | execute code based on different possible values for a variable | 
| template | create generic functions | 
| this | a pointer to the current object | 
| throw | throws an exception | 
| true | a constant representing the boolean true value | 
| try | execute code that can throw an exception | 
| typedef | create a new type name from an existing type | 
| typeid | describes an object | 
| typename | declare a class or undefined type | 
| union | a structure that assigns multiple variables to the same memory location | 
| unsigned | declare an unsigned integer variable | 
| using | import complete or partial namespaces into the current scope | 
| virtual | create a function that can be overridden by a derived class | 
| void | declare functions or data with no associated data type | 
| volatile | warn the compiler about variables that can be modified unexpectedly | 
| wchar_t | declare a wide-character variable | 
| while | looping construct | 
| xor | alternative to ^ operator | 
| xor_eq | alternative to ^= operator |