Basic concepts
| General topics | ||||||||||||||||
| Flow control | ||||||||||||||||
| Conditional execution statements | ||||||||||||||||
| Iteration statements (loops) | ||||||||||||||||
| 
 | ||||||||||||||||
| Jump statements | ||||||||||||||||
| Functions | ||||||||||||||||
| Function declaration | ||||||||||||||||
| Lambda function expression | ||||||||||||||||
| 
                 inline
                specifier | ||||||||||||||||
| Dynamic exception specifications ( until C++17* ) | ||||||||||||||||
| 
                 noexcept
                specifier
               
               
                (C++11) | ||||||||||||||||
| Exceptions | ||||||||||||||||
| Namespaces | ||||||||||||||||
| Types | ||||||||||||||||
| Specifiers | ||||||||||||||||
| 
 | ||||||||||||||||
| Storage duration specifiers | ||||||||||||||||
| Initialization | ||||||||||||||||
| Expressions | ||||||||||||||||
| Alternative representations | ||||||||||||||||
| Literals | ||||||||||||||||
| Boolean - Integer - Floating-point | ||||||||||||||||
| Character - String - nullptr (C++11) | ||||||||||||||||
| User-defined (C++11) | ||||||||||||||||
| Utilities | ||||||||||||||||
| Attributes (C++11) | ||||||||||||||||
| Types | ||||||||||||||||
| 
                 typedef
                declaration | ||||||||||||||||
| Type alias declaration (C++11) | ||||||||||||||||
| Casts | ||||||||||||||||
| Memory allocation | ||||||||||||||||
| Classes | ||||||||||||||||
| Class-specific function properties | ||||||||||||||||
| 
 | ||||||||||||||||
| Special member functions | ||||||||||||||||
| 
 | ||||||||||||||||
| Templates | ||||||||||||||||
| Miscellaneous | ||||||||||||||||
This section provides definitions for the specific terminology and the concepts used when describing the C++ programming language.
A C++ program is a sequence of text files (typically header and source files) that contain declarations . They undergo translation to become an executable program, which is executed when the C++ implementation calls its main function .
Certain words in a C++ program have special meaning, and these are known as keywords . Others can be used as identifiers . Comments are ignored during translation. C++ programs also contain literals , the values of characters inside them are determined by character sets and encodings . Certain characters in the program have to be represented with escape sequences .
The entities of a C++ program are values, objects , references , structured bindings (since C++17) , result bindings (since C++26) , functions , enumerators , types , class members, templates , template specializations , packs (since C++11) , and namespaces . Preprocessor macros are not C++ entities.
Declarations may introduce entities, associate them with names and define their properties. The declarations that define all properties required to use an entity are definitions . A program must contain only one definition of any non-inline function or variable that is odr-used .
Definitions of functions usually include sequences of statements , some of which include expressions , which specify the computations to be performed by the program.
Names encountered in a program are associated with the declarations that introduced them using name lookup . Each name is only valid within a part of the program called its scope . Some names have linkage which makes them refer to the same entities when they appear in different scopes or translation units.
Each object, reference, function, expression in C++ is associated with a type , which may be fundamental , compound, or user-defined , complete or incomplete , etc.
Declared objects and declared references that are not non-static data members are variables  .
See also
| 
          
           
            C documentation
           
          
          for
          
           
            Basic concepts
           
          
          |