# C and C++ reference

From cppreference.com

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

Language

Keywords − Preprocessor
ASCII chart
Basic concepts
Comments
Names (lookup)
Types (fundamental types)
The `main` function
Expressions
Value categories
Evaluation order
Operators (precedence)
Conversions − Literals
Statements
`if` − `switch`
`for` − range-`for` (C++11)
`while` − `do`-`while`
Declarations − Initialization
Functions − Overloading
Classes (unions)
Templates − Exceptions
Freestanding implementations

Standard library (headers)

Named requirements

Feature test macros (C++20)

Language − Standard library

Language support library

Program utilities
Signals − Non-local jumps
Basic memory management
Variadic functions
`source_location` (C++20)
Coroutine support (C++20)
Comparison utilities (C++20)
Type support − `type_info`
`numeric_limits` − `exception`
`initializer_list` (C++11)

Concepts library (C++20)

Diagnostics library

Assertions − System error (C++11)
Exception types − Error numbers
`basic_stacktrace` (C++23)
Debugging support (C++26)

Memory management library

Allocators − Smart pointers
Memory resources (C++17)

Metaprogramming library (C++11)

Type traits − `ratio`
`integer_sequence` (C++14)

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)
`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)

Iterators library

Ranges library (C++20)

Range factories − Range adaptors
`generator` (C++23)

Algorithms library

Numeric algorithms
Execution policies (C++17)
Constrained algorithms (C++20)

Strings library

`basic_string` − `char_traits`
`basic_string_view` (C++17)

Text processing library

Primitive numeric conversions (C++17)
Formatting (C++20)
`locale` − Character classification
`text_encoding` (C++26)
Regular expressions (C++11)
`basic_regex` − Algorithms
Default regular expression grammar
Null-terminated sequence utilities:
byte − multibyte − wide

Numerics library

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`

Date and time library

Calendar (C++20) − Time zone (C++20)

Input/output library

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 − Semaphores (C++20)
Condition variables − Futures
`latch` (C++20) − `barrier` (C++20)
Safe Reclamation (C++26)

Execution support library (C++26)

Technical specifications

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)
Reflection (reflection TS)

External Links − Non-ANSI/ISO Libraries − Index − std Symbol Index
C reference C89, C95, C99, C11, C17, C23 │ Compiler support C99, C23

Language

Basic concepts
Keywords
Preprocessor
Expressions
Declaration
Initialization
Functions
Statements

Headers

Type support

Program utilities

Variadic functions

Diagnostics library

Dynamic memory management

Strings library

Null-terminated strings:
byte − multibyte − wide

Date and time library

Localization library

Input/output library

Algorithms library

Numerics library

Common mathematical functions
Floating-point environment (C99)
Pseudo-random number generation
Complex number arithmetic (C99)
Type-generic math (C99)
Bit manipulation (C23)
Checked integer arithmetic (C23)

Concurrency support library (C11)

Technical specifications Dynamic memory extensions (dynamic memory TR) Floating-point extensions, Part 1 (FP Ext 1 TS) Floating-point extensions, Part 4 (FP Ext 4 TS)
External Links − Non-ANSI/ISO Libraries − Index − Symbol Index

News

- 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

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=Main_Page&oldid=170150"