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 enumeratorsinline
specifier
Inline assemblyconst
/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 constructorexplicit
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
Curiously Recurring Template Pattern (CRTP)
Pointer to implementation (PIMPL)
Resource acquisition is initialization (RAII)
Rule of three/five/zero
Zero-overhead principle
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4