Created on 2026-02-15.00:00:00 last changed 2 days ago
Possible resolution:
Move the following macro definitions from 15.12 [cpp.predefined] paragraph 1 as follows:
The following macro names shall be defined by the implementation:
- __STDCPP_FLOAT16_T__
- Defined as the integer literal 1 if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary16 as an extended floating-point type (6.9.3 [basic.extended.fp]).
- __STDCPP_FLOAT32_T__
- Defined as the integer literal 1 if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary32 as an extended floating-point type.
- __STDCPP_FLOAT64_T__
- Defined as the integer literal 1 if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary64 as an extended floating-point type.
- __STDCPP_FLOAT128_T__
- Defined as the integer literal 1 if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary128 as an extended floating-point type.
- __STDCPP_BFLOAT16_T__
- Defined as the integer literal 1 if and only if the implementation supports an extended floating-point type with the properties of the typedef-name std::bfloat16_t as described in 6.9.3 [basic.extended.fp].
Add the macro definitions to 15.12 [cpp.predefined] paragraph 2 with the indicated changes as follows:
The following macro names are conditionally defined by the implementation:
- __STDCPP_FLOAT16_T__
- Defined, and has the value integer literal 1, if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary16 as an extended floating-point type (6.9.3 [basic.extended.fp]).
- __STDCPP_FLOAT32_T__
- Defined, and has the value integer literal 1, if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary32 as an extended floating-point type.
- __STDCPP_FLOAT64_T__
- Defined , and has the value integer literal 1, if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary64 as an extended floating-point type.
- __STDCPP_FLOAT128_T__
- Defined, and has the value integer literal 1, if and only if the implementation supports the ISO/IEC 60559 floating-point interchange format binary128 as an extended floating-point type.
- __STDCPP_BFLOAT16_T__
- Defined, and has the value integer literal 1, if and only if the implementation supports an extended floating-point type with the properties of the typedef-name std::bfloat16_t as described in 6.9.3 [basic.extended.fp].
(From submission #851.)
The macros for the extended floating-point types are presented in a paragraph where unconditionally-defined macros are specified. However, those macros are conditionally defined and their presentation should be moved to the appropriate paragraph.
| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2026-03-10 22:12:18 | admin | set | messages: + msg8505 |
| 2026-02-15 00:00:00 | admin | create | |