16 Library introduction [library]

16.5 Library-wide requirements [requirements]

16.5.1 Library contents and organization [organization] Freestanding implementations [compliance]

Two kinds of implementations are defined: hosted and freestanding ([intro.compliance]); the kind of the implementation is implementation-defined.
For a hosted implementation, this document 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 22.
Table 22: C++ headers for freestanding implementations   [tab:headers.cpp.fs]
Implementation properties
<cfloat>, <climits>, <limits>, <version>
Integer types
Start and termination
Dynamic memory management
Type identification
Exception handling
Initializer lists
Coroutines support
Other runtime support
Concepts library
Type traits
Bit manipulation
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.