1bdeb339bb
8.1.1 - 2022-01-06 ------------------ * Restored ABI compatibility with version 8.0.x * Fixed chorno formatting on big endian systems * Fixed a linkage error with mingw 8.1.0 - 2022-01-02 ------------------ * Optimized chrono formatting Processing of some specifiers such as ``%z`` and ``%Y`` is now up to 10-20 times faster, for example on GCC 11 with libstdc++:: ---------------------------------------------------------------------------- Benchmark Before After ---------------------------------------------------------------------------- FMTFormatter_z 261 ns 26.3 ns FMTFormatterCompile_z 246 ns 11.6 ns FMTFormatter_Y 263 ns 26.1 ns FMTFormatterCompile_Y 244 ns 10.5 ns ---------------------------------------------------------------------------- * Implemented subsecond formatting for chrono durations For example (`godbolt <https://godbolt.org/z/es7vWTETe>`__): .. code:: c++ #include <fmt/chrono.h> int main() { fmt::print("{:%S}", std::chrono::milliseconds(1234)); } prints "01.234". * Fixed handling of precision 0 when formatting chrono durations * Fixed an overflow on invalid inputs in the ``tm`` formatter * Added ``fmt::group_digits`` that formats integers with a non-localized digit separator (comma) for groups of three digits. For example (`godbolt <https://godbolt.org/z/TxGxG9Poq>`__): .. code:: c++ #include <fmt/format.h> int main() { fmt::print("{} dollars", fmt::group_digits(1000000)); } prints "1,000,000 dollars". * Added support for faint, conceal, reverse and blink text styles * Added experimental support for compile-time floating point formatting It is currently limited to the header-only mode. * Added UDL-based named argument support to compile-time format string checks For example (`godbolt <https://godbolt.org/z/ohGbbvonv>`__): .. code:: c++ #include <fmt/format.h> int main() { using namespace fmt::literals; fmt::print("{answer:s}", "answer"_a=42); } gives a compile-time error on compilers with C++20 ``consteval`` and non-type template parameter support (gcc 10+) because ``s`` is not a valid format specifier for an integer. * Implemented escaping of string range elements. For example (`godbolt <https://godbolt.org/z/rKvM1vKf3>`__): .. code:: c++ #include <fmt/ranges.h> #include <vector> int main() { fmt::print("{}", std::vector<std::string>{"\naan"}); } is now printed as:: ["\naan"] instead of:: [" aan"] * Switched to JSON-like representation of maps and sets for consistency with Python's ``str.format``. For example (`godbolt <https://godbolt.org/z/seKjoY9W5>`__): .. code:: c++ #include <fmt/ranges.h> #include <map> int main() { fmt::print("{}", std::map<std::string, int>{{"answer", 42}}); } is now printed as:: {"answer": 42} * Extended ``fmt::join`` to support C++20-only ranges * Optimized handling of non-const-iterable ranges and implemented initial support for non-const-formattable types. * Disabled implicit conversions of scoped enums to integers that was accidentally introduced in earlier versions * Deprecated implicit conversion of ``[const] signed char*`` and ``[const] unsigned char*`` to C strings. * Deprecated ``_format``, a legacy UDL-based format API * Marked ``format``, ``formatted_size`` and ``to_string`` as ``[[nodiscard]]`` * Added missing diagnostic when trying to format function and member pointers as well as objects convertible to pointers which is explicitly disallowed * Optimized writing to a contiguous buffer with ``format_to_n`` * Optimized writing to non-``char`` buffers * Decimal point is now localized when using the ``L`` specifier. * Improved floating point formatter implementation * Fixed handling of very large precision in fixed format * Made a table of cached powers used in FP formatting static * Resolved a lookup ambiguity with C++20 format-related functions due to ADL * Removed unnecessary inline namespace qualification * Implemented argument forwarding in ``format_to_n`` * Fixed handling of implicit conversions in ``fmt::to_string`` and format string compilation * Changed the default access mode of files created by ``fmt::output_file`` to ``-rw-r--r--`` for consistency with ``fopen`` * Make ``fmt::ostream::flush`` public * Improved C++14/17 attribute detection * Improved documentation * Improved fuzzers and added a fuzzer for chrono timepoint formatting * Added the ``FMT_SYSTEM_HEADERS`` CMake option setting which marks {fmt}'s headers as system. It can be used to suppress warnings * Added the Bazel build system support * Improved build configuration and tests * Fixed various warnings and compilation issues |
||
---|---|---|
.. | ||
buildlink3.mk | ||
DESCR | ||
distinfo | ||
Makefile | ||
PLIST |