(Redirected from
)
The interface of C++ standard library is defined by the following collection of headers.
General purpose utilities:
,
,
,
(C++17)
Predefined execution policies for parallel versions of the algorithms and execution control components(since C++26)
Language support library
Limits of floating-point types
(C++20)
support
(C++26)
(C++20)
Macro (and function) that saves (and jumps) to an execution context
Functions and macro constants for signal management
Handling of variable length argument lists
(C++11)
and
(C++11)
class template
Query properties of arithmetic types
Low-level memory management utilities
(C++20)
Supplies means to obtain
(C++23)
Fixed-width floating-point types
(C++11)
Runtime type information utilities
(C++20)
Supplies macros for verifying implementation status of library
Concepts library
(C++20)
Diagnostics library
Conditionally compiled macro that compares its argument to zero
Macro containing the last error number
(C++26)
Debugging library
(C++23)
library
(C++11)
Defines
, a platform-dependent error code
Memory management library
High-level memory management utilities
(C++17)
Polymorphic allocators and memory resources
(C++11)
Metaprogramming library
(C++26)
Compile-time reflection support library
(C++11)
Compile-time rational arithmetic
(C++11)
Compile-time type information utilities
General utilities library
(C++17)
class
(C++20)
functions
class template
(C++23)
std::expected class template
Function objects, Function invocations, Bind operations and Reference wrappers
(C++17)
class template
(C++11)
class template
Various
(C++17)
class template
Containers library
(C++11)
container
container
(C++23)
std::flat_map and std::flat_multimap container adaptors
(C++23)
std::flat_set and std::flat_multiset container adaptors
(C++11)
container
(C++26)
std::hive container
(C++26)
std::inplace_vector container
container
and
associative containers
(C++23)
std::mdspan view
and
container adaptors
and
associative containers
(C++20)
std::span view
container adaptor
(C++11)
and
unordered associative containers
(C++11)
and
unordered associative containers
container
Iterators library
Ranges library
(C++23)
std::generator class template
(C++20)
Range access, primitives, requirements, utilities and adaptors
Algorithms library
Algorithms that operate on ranges
Numeric operations on values in ranges
Strings library
Various
narrow character string handling functions
class template
(C++17)
class template
Text processing library
Functions to determine the category of narrow characters
(C++17)
std::to_chars and std::from_chars
(C++11)(deprecated in C++17)(removed in C++26)
(C++11)
C-style
Unicode character conversion functions
Various
and
string handling functions
Functions to determine the category of wide characters
(C++20)
including
(C++11)
Classes, algorithms and iterators to support regular expression processing
(C++26)
Text encoding identifications
Numerics library
(C++11)
access functions
(C++26)
Basic linear algebra algorithms (BLAS)
(C++20)
(C++11)
Random number generators and distributions
(C++26)
Data-parallel types and operations on these types
Class for representing and manipulating arrays of values
Time library
(C++11)
Input/output library
(C++11)
, intmax_t and uintmax_t math and conversions
C-style input-output functions
(C++17)
class and
,
,
class templates and typedefs
Helper functions to control the format of input and output
class,
class template and typedefs
Forward declarations of all classes in the input/output library
Several standard stream objects
class template and typedefs
,
class templates and typedefs
(C++23)
Formatted output library including std::print
(C++23)
std::basic_spanstream, std::basic_ispanstream, std::basic_ospanstream class templates and typedefs
,
,
class templates and typedefs
class template
(deprecated in C++98)(removed in C++26)
,
,
(C++20)
std::basic_osyncstream, std::basic_syncbuf and typedefs
Concurrency support library
(C++11)
(C++20)
(C++11)
(C++11)
Primitives for asynchronous computations
(C++26)
Hazard pointers
(C++20)
(C++11)
(C++26)
Read-copy update mechanisms
(C++20)
(C++14)
Shared mutual exclusion primitives
(C++20)
Stop tokens for
(C++11)
class and
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
, 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
definitely provides
and may also provide ::malloc. Including
definitely provides ::malloc and may also provide
. 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.
Behaves same as
Behaves as if each name from
is placed in global namespace
Behaves same as
(C++11)
Behaves as if each name from
is placed in global namespace
Behaves same as
(C++11)
Behaves as if each name from
is placed in global namespace
Behaves same as
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace,
except for names of
mathematical special functions
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace,
except for names of
std::byte and related functions
(C++11)
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
(C++11)
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
Behaves as if each name from
is placed in global namespace
The headers
,
, and
declare names which are also provided in the C standard library. The header
also defines the
macro which is a
in C. Unlike other <xxx.h> headers, corresponding <cstdatomic>, <cstdbit>, and <cstdckdint> are not provided.
(C++23)
Defines _Atomic and provides corresponding components in the C standard library
(C++26)
Provides corresponding components in the C standard library
(C++26)
Provides corresponding components in the C standard library
The headers
,
,
, and
do not contain any content from the C standard library and instead merely include other headers from the C++ standard library.
The headers
,
, and
are meaningless in C++ because the macros they provide in C are language keywords in C++.
(removed in C++20)
Empty header.
The macros that appear in iso646.h in C
are
(C++11)(deprecated in C++17)(removed in C++20)
Defines one
(C++11)(deprecated in C++17)(removed in C++20)
Defines one
Has no effect
(C++11)
Defines one
(C++11)
Defines one
The C headers
,(until C++23)
, and
are not included in C++ and have no cxxx equivalents.
also define several collections of headers.
See also