Professional Documents
Culture Documents
<concepts>
Fundamental library concepts
(C++20)
Coroutines library
<coroutine>
Coroutine support library
(C++20)
Utilities library
<any>
std::any class
(C++17)
<compare>
Three-way comparison operator support
(C++20)
<optional>
std::optional class template
(C++17)
<source_location>
Supplies means to obtain source code location
(C++20)
<tuple>
std::tuple class template
(C++11)
<type_traits>
Compile-time type information
(C++11)
<typeindex>
std::type_index
(C++11)
Strings library
<cctype> Functions to determine the category of narrow characters
<charconv>
std::to_chars and std::from_chars
(C++17)
<deque> std::deque container
<flat_map>
std::flat_map and std::flat_multimap container adaptors
(C++23)
<flat_set>
std::flat_set and std::flat_multiset container adaptors
(C++23)
<forward_list>
std::forward_list container
(C++11)
<list> std::list container
<map> std::map and std::multimap associative containers
<mdspan>
std::mdspan view
(C++23)
<unordered_set> std::unordered_set and std::unordered_multiset unordered
(C++11) associative containers
<vector> std::vector container
Iterators library
<iterator> Range iterators
Ranges library
<generator>
std::generator class template
(C++23)
<ranges>
Range access, primitives, requirements, utilities and adaptors
(C++20)
Algorithms library
<algorithm> Algorithms that operate on ranges
<execution> Predefined execution policies for parallel versions of the
(C++17) algorithms
Numerics library
<bit>
Bit manipulation functions
(C++20)
<cfenv>
Floating-point environment access functions
(C++11)
<ratio>
Compile-time rational arithmetic
(C++11)
<spanstream> std::basic_spanstream, std::basic_ispanstream, std::basic_ospanstream
(C++23) class templates and typedefs
std::basic_stringstream, std::basic_istringstream, std::basic_ostringstre
<sstream>
am class templates and several typedefs
<streambuf> std::basic_streambuf class template
<strstream>
std::strstream, std::istrstream, std::ostrstream
(deprecated in C++98)
<syncstream>
std::basic_osyncstream, std::basic_syncbuf, and typedefs
(C++20)
Filesystem library
<filesystem>
std::path class and supporting functions
(C++17)
<condition_variable>
Thread waiting conditions
(C++11)
<future>
Primitives for asynchronous computations
(C++11)
<latch>
Latches
(C++20)
<mutex>
Mutual exclusion primitives
(C++11)
<semaphore>
Semaphores
(C++20)
<shared_mutex>
Shared mutual exclusion primitives
(C++14)
<stop_token>
Stop tokens for std::jthread
(C++20)
<thread>
std::thread class and supporting functions
(C++11)
C compatibility headers
For some of the C standard library headers of the form xxx.h, the C++ standard library both
includes an identically-named header and another header of the form cxxx (all
meaningful cxxx headers are listed above). The intended use of headers of form xxx.h is for
interoperability only. It is possible that C++ source files need to include one of these headers in
order to be valid ISO C. Source files that are not intended to also be valid ISO C should not use
any of the C headers.
With the exception of complex.h , each xxx.h header included in the C++ standard library places in
the global namespace each name that the corresponding cxxx header would have placed in
the std namespace.
These headers are allowed to also declare the same names in the std namespace, and the
corresponding cxxx headers are allowed to also declare the same names in the global namespace:
including <cstdlib> definitely provides std::malloc and may also provide ::malloc.
Including <stdlib.h> definitely provides ::malloc and may also provide std::malloc. This
applies even to functions and function overloads that are not part of C standard library.
Notes: xxx.h headers are deprecated in C++98 and undeprecated in C++23. These headers are
discouraged for pure C++ code, but not subject to future removal.