Basic concepts.
Comments ASCII chart Names and identifiers Types - Fundamental types Object - Scope - Lifetime Definitions and ODR Name lookup qualified - unqualified As-if rule Undefined behavior Memory model and data races Phases of translation The main() function Modules(C++20) .
C++ Keywords.
Preprocessor.
#if - #ifdef - #else - #endif #define - # - ## - #include #error - #pragma - #line .
Expressions.
Value categories Evaluation order and sequencing Constant expressions Operators assignment - arithmetic increment and decrement logical - comparison member access and indirection call, comma, ternary sizeof - alignof (C++11) new - delete - typeid Operator overloading Default comparisons(C++20) Operator precedence Conversions implicit - explicit - user-defined static_cast - dynamic_cast const_cast - reinterpret_cast Literals boolean - integer - floating character - string nullptr (C++11) user-defined (C++11) .
| Declaration.
Namespace declaration Namespace alias Lvalue and rvalue references Pointers - Arrays Structured bindings(C++17) Enumerations and enumerators Storage duration and linkage Language linkage inline specifier Inline assembly const /volatile - constexpr (C++11) decltype (C++11) - auto (C++11) alignas (C++11) typedef - Type alias(C++11) Elaborated type specifiers Attributes(C++11) static_assert (C++11) .
Initialization.
Default initialization Value initialization(C++03) Copy initialization Direct initialization Aggregate initialization List initialization(C++11) Reference initialization Static non-local initialization zero - constant Dynamic non-local initialization ordered - unordered Copy elision.
Functions.
Function declaration Default arguments Variadic arguments Lambda expression(C++11) Argument-dependent lookup Overload resolution Operator overloading Address of an overload set Coroutines (C++20) .
Statements.
if - switch for - range-for (C++11) while - do -while continue - break - goto - return synchronized and atomic (TM TS) .
| Classes.
Class types - Union types injected-class-name Data members - Member functions Static members - Nested classes Derived class - using -declaration Empty base optimization Virtual function - Abstract class override (C++11) - final (C++11) Member access - friend Bit fields - The this pointer Constructors and member initializer lists Default constructor - Destructor Copy constructor - Copy assignment Move constructor(C++11) - Move assignment(C++11) Converting constructor - explicit specifier .
Templates.
Template parameters and arguments Class template - Function template Class member template Variable template(C++14) Template argument deduction Explicit specialization Class template argument deduction(C++17) Partial specialization Parameter packs(C++11) - sizeof... (C++11) Fold-expressions(C++17) Dependent names - SFINAE Constraints and concepts (C++20) .
Exceptions.
throw -expression try -catch block function-try -block noexcept specifier(C++11) noexcept operator(C++11) Dynamic exception specification(until C++17) .
Miscellaneous.
History of C++ Extending the namespace std Acronyms.
Idioms.
Resource acquisition is initialization Rule of three/five/zero Pointer to implementation.
|