All Versions
51
Latest Version
Avg Release Cycle
84 days
Latest Release
225 days ago

Changelog History
Page 1

  • v12.1.0 Changes

    October 29, 2025
  • v12.0.0 Changes

    September 17, 2025
  • v11.2.0 Changes

    May 03, 2025
    • ➕ Added the s specifier for std::error_code. It allows formatting an error message as a string. For example:

    • 🛠 Fixed formatting of std::chrono::local_time and tm (#3815, #4350). For example (godbolt):

    • ➕ Added diagnostics for cases when timezone information is not available. For example:

    • 🗄 Deprecated fmt::localtime in favor of std::localtime.

    • 🛠 Fixed compilation with GCC 15 and C++20 modules enabled (#4347). Thanks @tkhyn.

    • 🛠 Fixed handling of named arguments in format specs (#4360, #4361). Thanks @dinomight.

    • ➕ Added error reporting for duplicate named arguments (#4367). Thanks @dinomight.

    • Fixed formatting of long with FMT_BUILTIN_TYPES=0 (#4375, #4394).

    • 💅 Optimized text_style using bit packing (#4363). Thanks @localspook.

    • ➕ Added support for incomplete types (#3180, #4383). Thanks @localspook.

    • 🛠 Fixed a flush issue in fmt::print when using libstdc++ (#4398).

    • Fixed fmt::println usage with FMT_ENFORCE_COMPILE_STRING and legacy compile-time checks (#4407). Thanks @madmaxoft.

    • ✂ Removed legacy header fmt/core.h from docs (#4421, #4422). Thanks @krzysztofkortas.

    • Worked around limitations of __builtin_strlen during constant evaluation (#4423, #4429). Thanks @brevzin.

    • Worked around a bug in MSVC v141 (#4412, #4413). Thanks @hirohira9119.

    • ✂ Removed the fmt_detail namespace (#4324).

    • Removed specializations of std::is_floating_point in tests (#4417).

    • Fixed a CMake error when setting CMAKE_MODULE_PATH in the pedantic mode (#4426). Thanks @rlalik.

    • ⚡️ Updated the Bazel config (#4400). Thanks @Vertexwahn.

  • v11.1.4 Changes

    February 26, 2025
    • 🛠 Fixed ABI compatibility with earlier 11.x versions on Windows (#4359).

    • 👌 Improved the logic of switching between fixed and exponential format for float (#3649).

    • Moved is_compiled_string to the public API (#4342). Thanks @SwooshyCueb.

    • Simplified implementation of operator""_cf (#4349). Thanks @localspook.

    • Fixed __builtin_strlen detection (#4329). Thanks @localspook.

    • 🛠 Fixed handling of BMI paths with the Ninja generator (#4344). Thanks @tkhyn.

    • 🛠 Fixed gcc 8.3 compile errors (#4331, #4336). Thanks @sergiud.

    • 🛠 Fixed a bogus MSVC warning (#4356). Thanks @dinomight.

  • v11.1.3 Changes

    January 26, 2025
    • 🛠 Fixed compilation on GCC 9.4 (#4313).

    • Worked around an internal compiler error when using C++20 modules with GCC 14.2 and earlier (#4295).

    • Worked around a bug in GCC 6 (#4318).

    • 🛠 Fixed an issue caused by instantiating formatter<const T> (#4303, #4325). Thanks @timsong-cpp.

    • 🛠 Fixed formatting into std::ostreambuf_iterator when using format string compilation (#4309, #4312). Thanks @phprus.

    • ⏪ Restored a constraint on the map formatter so that it correctly reports as unformattable when the element is (#4326). Thanks @timsong-cpp.

    • ⬇️ Reduced the size of format specs (#4298).

    • Readded args() to fmt::format_context (#4307, #4310). Thanks @Erroneous1.

    • 🛠 Fixed a bogus MSVC warning (#4314, #4322). Thanks @ZehMatt.

    • 🛠 Fixed a pedantic mode error in the CMake config (#4327). Thanks @rlalik.

  • v11.1.2 Changes

    January 12, 2025
  • v11.1.1 Changes

    December 27, 2024
    • 🛠 Fixed ABI compatibility with earlier 11.x versions (#4278).

    • 📄 Defined CMake components (core and doc) to allow docs to be installed separately (#4276). Thanks @carlsmedstad.

  • v11.1.0 Changes

    December 25, 2024
  • v11.0.2 Changes

    July 20, 2024
    • 🛠 Fixed compatibility with non-POSIX systems (#4054, #4060).

    • Fixed performance regressions when using std::back_insert_iterator with fmt::format_to (#4070).

    • 🛠 Fixed handling of std::generator and move-only iterators (#4053, #4057). Thanks @Arghnews.

    • 📜 Made formatter<std::string_view>::parse work with types convertible to std::string_view (#4036, #4055). Thanks @Arghnews.

    • Made volatile void* formattable (#4049, #4056). Thanks @Arghnews.

    • Made Glib::ustring not be confused with std::string (#4052).

    • Made fmt::context iterator compatible with STL algorithms that rely on iterator category (#4079).

  • v11.0.1 Changes

    July 05, 2024
    • 🛠 Fixed version number in the inline namespace (#4047).

    • 🛠 Fixed disabling Unicode support via CMake (#4051).

    • Fixed deprecated visit_format_arg (#4043). Thanks @nebkat.

    • 🛠 Fixed handling of a sign and improved the std::complex formater (#4034, #4050). Thanks @tesch1 and @phprus.

    • 🛠 Fixed ADL issues in fmt::printf when using C++20 (#4042). Thanks @toge.

    • ✂ Removed a redundant check in the formatter for std::expected (#4040). Thanks @phprus.