# 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"