Basic concepts
Basic definitions Comments Keywords Escape sequences ASCII chart Fundamental types scoping rules object lifetime one-definition rule memory model phases of translation
Preprocessor
#if - #ifdef - #ifndef #define #include #warning - #error #pragma - #line
Expressions
Operators Conversions Literals Identifiers operator precedence value categories evaluation order and sequence points sizeof - alignof - typeid new - delete
Statements
if - switch for - range-for - while - do-while continue - break - goto - return
Declaration
namespace declaration namespace alias pointer types enumeration declarations cv-specifiers - constexpr storage duration specifiers decltype - auto alignas typedef - type alias attributes
Initialization
default initialization value initialization copy initialization direct initialization aggregate initialization list initialization reference initialization
Functions
Function declaration Lambda expression inline specifier overload resolution
Exceptions
throw try-catch noexcept specifier noexcept operator exception specification
Classes
class types - union types data members - member functions - nested types derived class - virtual function - abstract class bit fields this access specifiers friend specifier default constructor - copy constructor copy assignment - destructor move constructor - move assignment member initializer lists
Templates
class template function template template specialization dependent names parameter packs - sizeof...
Miscellaneous'
History of C++ program startup program termination inline assembly RAII - Rule of three as-if rule - copy elision - empty base optimization