C++ referenceC++11, C++14, C++17, C++20, C++23, C++26, C++29 │ Compiler support C++11, C++14, C++17, C++20, C++23, C++26, C++29
Language
Preprocessor − CommentsASCII chartBasic concepts Keywords Names (lookup) Types (fundamental types) The main function Modules (C++20) Contracts (C++26)Expressions Value categories Evaluation order Operators (precedence) Conversions − Literals Constant expressionsStatements if − switch for − range-for (C++11) while − do-whileDeclarations − InitializationFunctions − OverloadingCoroutines (C++20)Classes (unions)Templates − ExceptionsFreestanding implementations
main
for
do
while
Standard library (headers)
Named requirements
Language support library
Program utilities Signals − Non-local jumpsBasic memory managementVariadic functionssource_location (C++20)Comparison utilities (C++20)Type support − type_infonumeric_limits − exceptioninitializer_list (C++11)Coroutine support (C++20)Contract support (C++26)
Concepts library (C++20)
Diagnostics library
Assertions − System error (C++11)Exception types − Error numbersbasic_stacktrace (C++23)Debugging support (C++26)
Memory management library
Allocators − Smart pointersMemory resources (C++17)
Metaprogramming library (C++11)
Type traits − ratiointeger_sequence (C++14)Reflection (C++26)
General utilities library
Function objects − hash (C++11)Swap − Type operations (C++11)Integer comparison (C++20)pair − tuple (C++11)optional (C++17)expected (C++23)variant (C++17) − any (C++17)bitset − Bit manipulation (C++20)
Containers library
vector − deque − array (C++11)list − forward_list (C++11)inplace_vector (C++26)hive (C++26)map − multimap − set − multisetunordered_map (C++11)unordered_multimap (C++11)unordered_set (C++11)unordered_multiset (C++11)Container adaptorsspan (C++20) − mdspan (C++23)
Iterators library
Ranges library (C++20)
Range factories − Range adaptorsgenerator (C++23)
Algorithms library
Numeric algorithmsExecution policies (C++17)Constrained algorithms (C++20)
Strings library
basic_string − char_traitsbasic_string_view (C++17)
Text processing library
Primitive numeric conversions (C++17)Formatting (C++20) − Localizationtext_encoding (C++26)Regular expressions (C++11) basic_regex − Algorithms Default regular expression grammarNull-terminated sequence utilities: byte − multibyte − wide
Numerics library
Common math functionsMathematical special functions (C++17)Mathematical constants (C++20)Basic linear algebra algorithms (C++26)Data-parallel types (SIMD) (C++26)Pseudo-random number generationFloating-point environment (C++11)complex − valarray
Date and time library
Calendar (C++20) − Time zone (C++20)
Input/output library
Print functions (C++23)Stream-based I/O − I/O manipulatorsbasic_istream − basic_ostreamSynchronized output (C++20)File systems (C++17)
Concurrency support library (C++11)
thread − jthread (C++20)atomic − atomic_flagatomic_ref (C++20) − memory_orderMutual exclusion − Condition variablesFutures − Semaphores (C++20)latch (C++20) − barrier (C++20)Safe Reclamation (C++26)
Execution support library (C++26)
Feature test macros (C++20)
Language − Standard library − Headers
Standard library extensions (library fundamentals TS)
resource_adaptor − invocation_type
Standard library extensions v2 (library fundamentals TS v2)
propagate_const − ostream_joiner − randint observer_ptr − Detection idiom
Standard library extensions v3 (library fundamentals TS v3)
scope_exit − scope_fail − scope_success − unique_resource
Parallelism library extensions v2(parallelism TS v2)
simd
Concurrency library extensions(concurrency TS)Transactional Memory (TM TS)
C referenceC89, C95, C99, C11, C17, C23 │ Compiler support C99, C23
Basic conceptsKeywordsPreprocessorExpressionsDeclarationInitializationFunctionsStatements
Headers
Type support
Program utilities
Variadic functions
Dynamic memory management
Null-terminated strings: byte − multibyte − wide
Localization library
Common mathematical functionsFloating-point environment (C99)Pseudo-random number generationComplex number arithmetic (C99)Type-generic math (C99)Bit manipulation (C23)Checked integer arithmetic (C23)
Concurrency support library (C11)
Dynamic memory extensions (dynamic memory TR) Floating-point extensions, Part 1 (FP Ext 1 TS) Floating-point extensions, Part 4 (FP Ext 4 TS)