20 Library introduction [library]

20.5 Library-wide requirements [requirements]

20.5.1 Library contents and organization [organization]

20.5.1.3 Freestanding implementations [compliance]

Two kinds of implementations are defined: hosted and freestanding ([intro.compliance]).
For a hosted implementation, this International Standard describes the set of available headers.
A freestanding implementation has an implementation-defined set of headers.
This set shall include at least the headers shown in Table 19.
Table 19 — C++ headers for freestanding implementations
Subclause
Header(s)
<ciso646>
Types
<cstddef>
Implementation properties
<cfloat> <limits> <climits>
Integer types
<cstdint>
Start and termination
<cstdlib>
Dynamic memory management
<new>
Type identification
<typeinfo>
Exception handling
<exception>
Initializer lists
<initializer_­list>
Other runtime support
<cstdarg>
Type traits
<type_­traits>
Atomics
<atomic>
Deprecated headers
<cstdalign> <cstdbool>
The supplied version of the header <cstdlib> shall declare at least the functions abort, atexit, at_­quick_­exit, exit, and quick_­exit ([support.start.term]).
The other headers listed in this table shall meet the same requirements as for a hosted implementation.