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?
How could I extend a format-spec for existing type (eg float) in C++?
101 Views Asked by Andrew At
1
There are 1 best solutions below
Related Questions in C++
- How to immediately apply DISPLAYCONFIG_SCALING display scaling mode with SetDisplayConfig and DISPLAYCONFIG_PATH_TARGET_INFO
- Why can't I use templates members in its specialization?
- How to fix "Access violation executing location" when using GLFW and GLAD
- Dynamic array of structures in C++/ cannot fill a dynamic array of doubles in structure from dynamic array of structures
- How do I apply the interface concept with the base-class in design?
- File refuses to compile std::erase() even if using -std=g++23
- How can I do a successful map when the number of elements to be mapped is not consistent in Thrust C++
- Can std::bit_cast be applied to an empty object?
- Unexpected inter-thread happens-before relationships from relaxed memory ordering
- How i can move element of dynamic vector in argument of function push_back for dynamic vector
- Brick Breaker Ball Bounce
- Thread-safe lock-free min where both operands can change c++
- Watchdog Timer Reset on ESP32 using Webservers
- How to solve compiler error: no matching function for call to 'dmhFS::dmhFS()' in my case?
- Conda CMAKE CXX Compiler error while compiling Pytorch
Related Questions in C++20
- Can std::bit_cast be applied to an empty object?
- Is there a way to negate constrains?
- Polymorphism using template and concepts
- Is there a way to write a concept to check if a type is a structural type
- unicode symbol breaks formatting in c++20
- Why is std::array<T,N>::size() not declared static?
- time_point extension to a struct holding another member
- How to create a string literal based on generic character type in c++20?
- Export and create package of c++20 modules
- How to avoid ambiguous overloads on inherited function calls using enable_if or concepts?
- Basic tests fail with msvc but work with gcc
- C++ static template class member variable: non-inline external definitions are not permitted in C++ header units
- Is the ordering of std::recursive_directory_iterator specified?
- What is the modern C++ way of handling multi-channel data using span?
- Understanding documentation for c++ concepts (weakly_incrementable)
Related Questions in STDFORMAT
- How can I make custom parsing in user defined std::formatter without loosing standard formatting
- Why does std::format and std::vformat take forwarding references for its arguments?
- Possibility for fstring-like code in C++ using meta-programming
- How do I use std::formatter directly?
- Using std::format when importing <iostream> and <format> at the same time caused a SIGSEGV fault
- Custom formatter for std::format for std::wstring GCC
- How do I check at compile-time if there's enough `{}` placeholders for all arguments?
- Optimizing out a VS 2022 dependency in a Github CI action
- c++ std::format from <format> module crashes the program
- Inserting Characters in Placeholder in `std::format`
- Exception message with C++20 format
- is std::format at runtime possible?
- How to forward formatting information from std::format
- How do I preserve inter-string null characters in std::format string
- How could I extend a format-spec for existing type (eg float) in C++?
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
The formatting specification for basic types like
floatare 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)), whereMyUnitis your type which has its own formatting specification.