I want to extend formatting options for floating-point type, preferably preserving some of the existing options. For instance, I want to add a new type
specifier for the measurements with units to write like this std::format({:.5mm}, 0.05f)
and get my data printed with precision=5
, but also multiplied by 1000 and prefixed with 'mm'. Is that even possible?
The formatting specification for basic types like float
are built into the system; you cannot extend them.
You can wrap them in a user-defined type which you can apply whatever formatting to you like. As exemplified in the comments, std::format("{:.5mm}", MyUnit(0.05f))
, where MyUnit
is your type which has its own formatting specification.