C++ language
noexcept specifier (C++11)This is a reference of the core C++ language constructs.
Comments 
ASCII chart 
Punctuation 
Names and identifiers 
Types – 
Fundamental types 
Object –
Scope –
Lifetime 
Definitions and ODR 
Name lookup 
    qualified – unqualified (ADL)
As-if rule 
Undefined behavior (UB) 
Memory – Multithread (C++11)
Character sets and encodings 
Phases of translation 
The main function 
Modules (C++20)
Contracts (C++26)
#if - #ifdef - #ifndef - #elif 
#elifdef - #elifndef (C++23)
#define - # - ## 
 
#include -
#pragma 
#line -
#error 
#warning (C++23)
Value categories 
Evaluation order 
Constant expressions 
Operators 
    assignment –
arithmetic 
    increment and decrement 
    logical –
comparison 
    member access 
    call, comma, ternary 
    sizeof – alignof (C++11)
    new – delete – typeid 
    alternative representation 
Default comparisons (C++20)
Operator precedence 
Conversions 
    implicit – explicit 
    user-defined 
    Usual arithmetic conversions 
    static_cast – dynamic_cast 
    const_cast 
    reinterpret_cast 
Literals (Escape sequences)
    boolean –
integer –
floating 
    character –
string 
    nullptr (C++11)
    user-defined (UDL) (C++11)
Conflicting declarations 
Storage duration and linkage 
Translation-unit-local (C++20)
Language linkage 
Namespace declaration 
Namespace alias 
References –
Pointers –
Arrays 
Structured bindings (C++17)
Enumerations and enumerators 
inline specifier 
Inline assembly 
const/volatile 
constexpr (C++11)
consteval (C++20)
constinit (C++20)
decltype (C++11)
auto (C++11)
typedef – Type alias (C++11)
Elaborated type specifiers 
Attributes (C++11)
alignas (C++11)
static_assert (C++11)
Default-initialization 
Value-initialization 
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 (RVO)
Function declaration 
Default arguments 
Variadic arguments 
Lambda expression (C++11)
Overload resolution 
Operator overloading 
Address of an overload set 
Coroutines (C++20)
Replacement functions 
if –
switch 
for –
range-for (C++11)
while – do-while 
continue –
break 
goto –
return 
contract_assert (C++26)
synchronized/atomic (TM TS)
Class types –
Union types 
injected-class-name 
Data members –
Bit-fields 
Member functions –
The this pointer 
Static members –
Nested classes 
Derived class –
using-declaration 
Empty base optimization (EBO) 
Virtual function –
Abstract class (ABC) 
override (C++11) – final (C++11)
Member access –
friend 
 
Constructors and member initializer lists 
Default constructor –
Destructor 
Copy constructor –
Copy assignment 
Move constructor (C++11)
Move assignment (C++11)
Converting constructor 
explicit specifier 
Template parameters 
Template arguments 
Class template –
Function template 
Variable template (C++14)
Class member template 
Template argument deduction
    function –
class (CTAD) (C++17)
Explicit specialization – Partial specialization 
Packs (C++11) – sizeof... (C++11)
Fold expressions (C++17)
Pack indexing (C++26)
Dependent names –
SFINAE 
Constraints and concepts (C++20)
Requires expression (C++20)
try block 
Throwing exceptions 
Handling exceptions 
Exception specification
    noexcept specification (C++11)
    Dynamic specification (until C++17*)
noexcept operator (C++11)
Miscellaneous
History of C++ 
Extending the namespace std 
Acronyms:
AFO,
CPO,
IFNDR,
NDR,
NTBS,
NTTP,
RAO,
SOCCC,
TMP,
TU
Idioms