From 184815c75b6ee205848d1900fdd64f93eaea637c Mon Sep 17 00:00:00 2001 From: "an.tsouchlos" Date: Tue, 15 Feb 2022 13:53:47 +0000 Subject: [PATCH] Updated README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f61ea8e..ed826fb 100644 --- a/README.md +++ b/README.md @@ -11,8 +11,7 @@ During compile-time, the string to be formatted is preprocessed to the point onl have to be written (If they are not available at compile time). For example `One number: {:03}; And another one: {:05.3}` is preprocessed into `One number: 000; And another one: 00.000`. -This is returned as a `std::array`, where `N` is automatically evaluated. The only code executed at compile -time then formats the numbers and writes them into their place in the array. +This is returned as a `std::array`, where `N` is automatically evaluated. The only code executed at runtime then formats the numbers and writes them into their places in the array. Disclaimer: The actual formatting code is largely shamelessly stolen from `fmtlib`. @@ -48,8 +47,11 @@ $ ctest --test-dir build/ ## Limitations +For the compile time preprocessing of format strings non non-type template parameters are heavily relied upon, +which means C++20 is required. + Only a relatively limited subset of the `fmtlib` syntax is recognized (for now anyway). In particular, -there is no support for positional arguments, alignment, chrono format specs and custom const_format specifications. +float formatting in decimal and integer formatting in decimal, binary and hexadecimal are supported. By nature of the library design, which forces compile-time preprocessing of the const_format string, no dynamic width or dynamic precision can be implemented.