This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of New status.
<cfloat> should be specified not to contain all macros in <float.h>Section: 17.3.7 [cfloat.syn] Status: New Submitter: Jan Schultke Opened: 2025-11-13 Last modified: 2026-01-16
Priority: 3
View all issues with New status.
Discussion:
Consider 17.3.6 [climits.syn] paragraph 1:
The header
<climits>defines all macros the same as the C standard library header<limits.h>, except that it does not define the macroBITINT_MAXWIDTH.
Similarly, <cfloat> is missing various macros from C's <float.h>,
but this is not stated.
[2026-01-16; Reflector poll.]
Set priority to 3 after reflector poll.
"Could be just 'The header <cfloat> defines all macros shown above the same as the C standard library header <float.h>."
"That would resolve my concern to require C++ implementations to actively #undef things from <float.h>.
It should be up to the implementation."
Previous resolution [SUPERSEDED]:
This wording is relative to N5014.
Modify 17.3.7 [cfloat.syn] as indicated:
-1- The header
<cfloat>defines all macros the same as the C standard library header<float.h>, except that it does not define any macros specifying characteristics of C decimal floating types or C interchange floating types.
[2026-01-16; Jonathan provides improved wording]
Proposed resolution:
This wording is relative to N5032.
Modify 17.3.7 [cfloat.syn] as indicated:
-1- The header
<cfloat>defines all macros shown above the same as the C standard library header<float.h>.