cpp/header

The interface of C++ standard library is defined by the following collection of headers.

C compatibility headers
For some of the C standard library headers of the form, the C++ standard library both includes an identically-named header and another header of the form (all meaningful  headers are listed above). The intended use of headers of form 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 header included in the C++ standard library places in the global namespace each name that the corresponding  header would have placed in the  namespace.

These headers are allowed to also declare the same names in the namespace, and the corresponding  headers are allowed to also declare the same names in the global namespace: including  definitely provides  and may also provide. Including definitely provides  and may also provide. This applies even to functions and function overloads that are not part of C standard library.

Notes: 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.

Special C compatibility headers
The header declares names which are also provided in the C standard library, and defines the  macro which is a keyword in C. Unlike other  headers, corresponding  is not provided.

Empty C headers
The headers, , , and do not contain any content from the C standard library and instead merely include other headers from the C++ standard library.

Meaningless C headers
The headers, , and are meaningless in C++ because the macros they provide in C are language keywords in C++.

Unsupported C headers
The C headers, and  are not included in C++ and have no  equivalents.

C++ TR's/TS's also define several collections of headers.