Skip to content

LWG3639: Handling of fill character width is underspecified in std::format #1150

@tahonermann

Description

@tahonermann

SG16 needs to clarify the intended design for https://cplusplus.github.io/LWG/issue3639.

 20.20.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.

There are at least three possible resolutions:

    1. s == "🤡🤡🤡🤡42": use the estimated display width, correctly displayed on compatible terminals.

    2. s == "🤡🤡🤡🤡🤡🤡🤡🤡42": assume the display width of 1, incorrectly displayed.

    3. Require the fill character to have the estimated width of 1.

Metadata

Metadata

Assignees

No one assigned

    Labels

    C++23Targeted at C++23LWGLibraryformatplenary-approvedPapers approved for inclusion in their target vehicle by plenary vote.

    Type

    No type

    Projects

    Status

    Ready

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions