C++ Reference
Standard library, language features, and utilities for C++11 through C++26.
C++ spans both a language and a standard library ecosystem. This page is the top-level map of the reference: use it to choose the language rules, library facilities, a specific standard version, or a specialized index. Deeper curated hubs such as Ranges and Algorithms are linked as destinations, not redefined here.
# Start Here
Language rules and syntax
Declarations, types, expressions, classes, templates, object lifetime, and the rules the compiler enforces.
Standard library overview
Containers, algorithms, numerics, text, concurrency, memory, utilities, and the header/module entry points for the library.
Containers · I/O · Concurrency
Choose by header
Use the curated header hub when you know the include shape you want but need the right family, version, or compatibility path.
Navigate by standard version
Jump straight to C++11 through C++26 when your codebase or toolchain is anchored to a specific standard revision.
# Language Vs. Library
| Area | What it answers | Start with | Typical topics |
|---|---|---|---|
| Core language | How the language itself works: syntax, typing, overload resolution, templates, expressions, storage, object model. | Language | Types, Functions, Templates, RAII |
| Standard library | Which reusable facilities exist and which headers/modules expose them. | Standard library | Containers, Algorithms, Strings, Concurrency |
| Preprocessor and tokens | Source transformation before compilation and keyword/token-level reference material. | Preprocessor, Keywords | #include, conditional compilation, constexpr |
| Portability and support status | Whether a feature exists in a given compiler or standard library and which feature-test macro represents it. | Compiler support, Feature test macros, Freestanding | Availability tables, macros, hosted vs. freestanding, implementation gaps. |
# Standard Versions
| Standard | Why you would start there | Flagship changes |
|---|---|---|
| C++11 | The modern baseline for move semantics, lambdas, smart pointers, atomics, and the first big library expansion. | lambdas, move, thread support, <type_traits> |
| C++14 | Incremental cleanup when you need the post-C++11 fixes and smaller quality-of-life language improvements. | Generic lambdas, return type deduction, variable templates, shared locking support. |
| C++17 | Widely deployed production target for filesystem, structured bindings, `if constexpr`, and vocabulary types. | filesystem, optional, variant, <string_view> |
| C++20 | Feature-heavy modern target for concepts, ranges, coroutines, formatting, and newer concurrency primitives. | concepts, ranges, coroutines, <format> |
| C++23 | Current language/library refinement wave with expected, print, mdspan, stacktrace, and more library ergonomics. | expected, <print>, <mdspan>, <stacktrace> |
| C++26 | Forward-looking draft-facing landing for the newest library surfaces and post-C++23 standardization work. | <debugging>, <inplace_vector>, <linalg>, <simd> |
# Specialized Indexes And Reference Aids
| If you already know the shape of what you need | Go here |
|---|---|
| You know the exact include name or want to browse by header family. | Curated headers hub or all headers |
| You want an alphabetic or symbol-driven lookup. | Symbol index, keyword index, keywords overview |
| You need named requirements, compatibility notes, or miscellaneous cross-reference material. | Named requirements, Meta, Legacy links |
| You are tracking implementation support or feature macros. | Compiler support, Feature test macros, Current status |
| You need experimental or TS-oriented material outside the standard core/library baseline. | Experimental |