Conformance has a three-fold definition:
The standard does not define any minimum implementation limit on translation units. A hosted environment has an operating system; a freestanding environment does not. A program running in a hosted environment may use all features described in the library clause (clause 7); a program running in a freestanding environment may use a subset of library features required by clause 4.
All standard library features in every fully freestanding header are required to be provided by a freestanding implementation.
Some standard library headers are conditionally freestanding.
In a partially freestanding header, only a part of standard library features are required to be provided by a freestanding implementation.
| (since C23) |
Fully freestanding standard library headers |
|
<float.h> | Limits of floating-point types |
<iso646.h> (C95) | Alternative operator spellings |
<limits.h> | Ranges of integer types |
<stdalign.h> (C11) | alignas and alignof convenience macros |
<stdarg.h> | Variable arguments |
<stdbool.h> (C99) | Macros for boolean type |
<stddef.h> | Common macro definitions |
<stdint.h> (C99) | Fixed-width integer types |
<stdnoreturn.h> (C11) | noreturn convenience macro |
Partially freestanding standard library headers |
|
<string.h> (C23) | String handling |
Conditionally fully freestanding standard library headers |
|
<fenv.h> (C23) | Floating-point environment |
<math.h> (C23) | Common mathematics functions |
Conditionally partially freestanding standard library headers |
|
<stdlib.h> (C23) | General utilities: memory management, program utilities, string conversions, random numbers, algorithms |
C++ documentation for Freestanding and hosted implementation |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/language/conformance