C and C++ reference
The site will be in a temporary read-only mode in the next few weeks to facilitate some long-overdue software updates. We apologize for any inconvenience this may cause!
C++ reference
C++11, C++14, C++17, C++20, C++23, C++26 │ Compiler support C++11, C++14, C++17, C++20, C++23, C++26
Preprocessor − Comments
ASCII chart
Basic 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 expressions
Statements
if − switch
for − range-for
(C++11)
while − do
-while
Declarations − Initialization
Functions − Overloading
Coroutines (C++20)
Classes (unions)
Templates − Exceptions
Freestanding implementations
Program utilities
Signals − Non-local jumps
Basic memory management
Variadic functions
source_location (C++20)
Comparison utilities (C++20)
Type support − type_info
numeric_limits − exception
initializer_list (C++11)
Coroutine support (C++20)
Contract support (C++26)
Concepts library (C++20)
Assertions − System error (C++11)
Exception types − Error numbers
basic_stacktrace (C++23)
Debugging support (C++26)
Allocators − Smart pointers
Memory resources (C++17)
Metaprogramming library (C++11)
Type traits − ratio
integer_sequence (C++14)
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)
vector − deque − array (C++11)
list − forward_list (C++11)
inplace_vector (C++26)
hive (C++26)
map − multimap − set − multiset
unordered_map (C++11)
unordered_multimap (C++11)
unordered_set (C++11)
unordered_multiset (C++11)
Container adaptors
span (C++20) − mdspan (C++23)
Ranges library (C++20)
Range factories − Range adaptors
generator (C++23)
Numeric algorithms
Execution policies (C++17)
Constrained algorithms (C++20)
basic_string − char_traits
basic_string_view (C++17)
Primitive numeric conversions (C++17)
Formatting (C++20) − Localization
text_encoding (C++26)
Regular expressions (C++11)
basic_regex − Algorithms
Default regular expression grammar
Null-terminated sequence utilities:
byte − multibyte − wide
Common math functions
Mathematical special functions (C++17)
Mathematical constants (C++20)
Basic linear algebra algorithms (C++26)
Data-parallel types (SIMD) (C++26)
Pseudo-random number generation
Floating-point environment (C++11)
complex − valarray
Print functions (C++23)
Stream-based I/O − I/O manipulators
basic_istream − basic_ostream
Synchronized output (C++20)
File systems (C++17)
Concurrency support library (C++11)
thread − jthread (C++20)
atomic − atomic_flag
atomic_ref (C++20) − memory_order
Mutual exclusion − Condition variables
Futures − Semaphores (C++20)
latch (C++20) − barrier (C++20)
Safe Reclamation (C++26)
Execution support library (C++26)
Feature test macros (C++20)
Standard library extensions (library fundamentals TS)
Standard library extensions v2 (library fundamentals TS v2)
Standard library extensions v3 (library fundamentals TS v3)
Parallelism library extensions v2
(parallelism TS v2)
Concurrency library extensions
(concurrency TS)
Transactional Memory (TM TS)
Reflection (reflection TS)
C reference
C89, C95, C99, C11, C17, C23 │ Compiler support C99, C23
Dynamic memory extensions (dynamic memory TR)
Floating-point extensions, Part 1 (FP Ext 1 TS)
Floating-point extensions, Part 4 (FP Ext 4 TS)
- 30 March 2025: The site will be in a temporary read-only mode in the next few weeks to facilitate some long-overdue software updates. Hopefully it won't take too long, but we all know how database migrations can sometimes turn evil. Please send any concerns/ideas/moral-support to comments@cppreference.com.
- 7 June 2019: New version of the offline archive
- 28 October 2018: New version of the offline archive
- 11 March 2018: New version of the offline archive