std::format
Section: 28.5.2.2 [format.string.std] Status: Resolved Submitter: Victor Zverovich Opened: 2021-11-13 Last modified: 2023-03-23
Priority: 3
View other active issues in [format.string.std].
View all other issues in [format.string.std].
View all issues with Resolved status.
Discussion:
28.5.2.2 [format.string.std] doesn't specify if implementations should consider the estimated width of the fill character when substituting it into the formatted results.
For example:auto s = std::format("{:🤡>10}", 42);
"🤡"
(U+1F921) is a single code point but its estimated display width is two.
s == "🤡🤡🤡🤡42"
: use the estimated display width,
correctly displayed on compatible terminals.
s == "🤡🤡🤡🤡🤡🤡🤡🤡42"
:
assume the display width of 1, incorrectly displayed.
Require the fill character to have the estimated width of 1.
[2021-11-14; Daniel comments]
Resolving this issue should be harmonized with resolving LWG 3576.
[2022-01-30; Reflector poll]
Set priority to 3 after reflector poll. Sent to SG16.
[2023-01-11; LWG telecon]
P2572 would resolve this issue and LWG 3576.
[2023-03-22 Resolved by the adoption of P2572R1 in Issaquah. Status changed: SG16 → Resolved.]
Proposed resolution: