Reference (section label): [basic.extended.fp]
Issue description
"Extended floating-point types" ([basic.fundamental]) includes cv-qualified types, and it is not clearly specified that std::float16_t and other type aliases shall name cv-unqualified types because std::float16_t is simply stated to "name such [an extended floating-point] type".
Suggested resolution
Change [basic.extended.fp] paragraph 1 as follows:
If the implementation supports an extended floating-point type ([basic.fundamental])
whose properties are specified by the ISO/IEC 60559 floating-point interchange format binary16,
then the typedef-name std::float16_t is declared in the header <stdfloat> and names such a
+cv-unqualified ([basic.type.qualifier])
type, the macro __STDCPP_FLOAT16_T__ is defined ([cpp.predefined]),
and the floating-point literal suffixes f16 and F16 are supported ([lex.fcon]).
Change paragraphs 2, 3, 4, and 5 analogously.
Reference (section label): [basic.extended.fp]
Issue description
"Extended floating-point types" ([basic.fundamental]) includes cv-qualified types, and it is not clearly specified that
std::float16_tand other type aliases shall name cv-unqualified types becausestd::float16_tis simply stated to "name such [an extended floating-point] type".Suggested resolution
Change [basic.extended.fp] paragraph 1 as follows:
If the implementation supports an extended floating-point type ([basic.fundamental]) whose properties are specified by the ISO/IEC 60559 floating-point interchange format binary16, then the typedef-name std::float16_t is declared in the header <stdfloat> and names such a +cv-unqualified ([basic.type.qualifier]) type, the macro __STDCPP_FLOAT16_T__ is defined ([cpp.predefined]), and the floating-point literal suffixes f16 and F16 are supported ([lex.fcon]).Change paragraphs 2, 3, 4, and 5 analogously.