std::format
: #
(alternate form) for NaN and infSection: 28.5.2.2 [format.string.std] Status: C++20 Submitter: Richard Smith Opened: 2019-08-05 Last modified: 2021-02-25
Priority: 0
View other active issues in [format.string.std].
View all other issues in [format.string.std].
View all issues with C++20 status.
Discussion:
We have:
"For floating-point numbers, the alternate form causes the result of the conversion to always contain a decimal-point character, even if no digits follow it."
So does that mean that infinity is formatted as "inf."
and NaN as "nan."
? (Or
something like that? Where exactly do we add the decimal point in this case?) Or does this
affect infinity but not NaN (because we can handwave that a NaN value is not a
"floating-point number")?
"inf"
and "nan"
without a decimal point.
[2020-02 Status to Immediate on Thursday morning in Prague.]
Proposed resolution:
This wording is relative to N4830.
Modify 28.5.2.2 [format.string.std] as indicated:
-6- […] For floating-point types, the alternate form causes the result of the conversion of finite values to always contain a decimal-point character, even if no digits follow it. Normally, a decimal-point character appears in the result of these conversions only if a digit follows it. In addition, for
g
andG
conversions, trailing zeros are not removed from the result.