Compiler support Freestanding implementations
Language
Basic concepts C++ Keywords Preprocessor Expressions Declaration Initialization Functions Statements Classes Templates Exceptions
Headers
Named requirements
Feature test macros (C++20)
Language support library
Type support − traits (C++11) Program utilities Relational comparators (C++20) numeric_limits − type_info initializer_list (C++11)
Concepts library (C++20)
Diagnostics library
General utilities library
Smart pointers and allocators Date and time Function objects − hash (C++11) String conversions (C++17) Utility functions pair − tuple (C++11) optional (C++17) − any (C++17) variant (C++17)
Strings library
basic_string basic_string_view (C++17) Null-terminated strings: byte − multibyte − wide
Containers library
array (C++11) − vector map − unordered_map (C++11) priority_queue − span (C++20) Other containers: sequence − associative unordered associative − adaptors
Iterators library
Ranges library (C++20)
Algorithms library
Numerics library
Common math functions Special math functions (C++17) Numeric algorithms Pseudo-random number generation Floating-point environment (C++11) complex − valarray
Input/output library
Stream-based I/O Synchronized output (C++20) I/O manipulators
Localizations library
Regular expressions library (C++11)
basic_regex − algorithms
Atomic operations library (C++11)
atomic − atomic_flag atomic_ref (C++20)
Thread support library (C++11)
Filesystem library (C++17)
Standard library extensions (library fundamentals TS) Standard library extensions v2 (library fundamentals TS v2)
propagate_const — observer_ptr — source_location ostream_joiner — detection idiom — uniform container erasure
Concurrency library extensions (concurrency TS) Concepts (concepts TS) Ranges (ranges TS) Transactional Memory (TM TS)