[compliance] (original) (raw)

16 Library introduction [library]

16.4 Library-wide requirements [requirements]

16.4.2 Library contents and organization [organization]

16.4.2.4 Freestanding implementations [compliance]

Two kinds of implementations are defined:hosted and freestanding ([intro.compliance]); the kind of the implementation isimplementation-defined.

For a hosted implementation, this document describes the set of available headers.

A freestanding implementation has animplementation-defined set of headers.

This set shall include at least the headers shown in Table 24.

The supplied version of the header shall declare at least the functionsabort,atexit,at_­quick_­exit,exit, andquick_­exit ([support.start.term]).

The supplied version of the header shall meet the same requirements as for a hosted implementation except that support for always lock-free integral atomic types ([atomics.lockfree]) is implementation-defined, and whether or not the type aliases atomic_­signed_­lock_­free andatomic_­unsigned_­lock_­free are defined ([atomics.alias]) is implementation-defined.

The other headers listed in this table shall meet the same requirements as for a hosted implementation.