git repos / blockattack-game

blame: source/misc/embedded_libs/fmt-11.0.2/ChangeLog.md

normal view · raw

47fd5c32 Poul Sander 2024-10-05 08:44 1
# 11.0.2 - 2024-07-20
47fd5c32 Poul Sander 2024-10-05 08:44 2
47fd5c32 Poul Sander 2024-10-05 08:44 3
- Fixed compatibility with non-POSIX systems
47fd5c32 Poul Sander 2024-10-05 08:44 4
  (https://github.com/fmtlib/fmt/issues/4054,
47fd5c32 Poul Sander 2024-10-05 08:44 5
  https://github.com/fmtlib/fmt/issues/4060).
47fd5c32 Poul Sander 2024-10-05 08:44 6
47fd5c32 Poul Sander 2024-10-05 08:44 7
- Fixed performance regressions when using `std::back_insert_iterator` with
47fd5c32 Poul Sander 2024-10-05 08:44 8
  `fmt::format_to` (https://github.com/fmtlib/fmt/issues/4070).
47fd5c32 Poul Sander 2024-10-05 08:44 9
47fd5c32 Poul Sander 2024-10-05 08:44 10
- Fixed handling of `std::generator` and move-only iterators
47fd5c32 Poul Sander 2024-10-05 08:44 11
  (https://github.com/fmtlib/fmt/issues/4053,
47fd5c32 Poul Sander 2024-10-05 08:44 12
  https://github.com/fmtlib/fmt/pull/4057). Thanks @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 13
47fd5c32 Poul Sander 2024-10-05 08:44 14
- Made `formatter<std::string_view>::parse` work with types convertible to
47fd5c32 Poul Sander 2024-10-05 08:44 15
  `std::string_view` (https://github.com/fmtlib/fmt/issues/4036,
47fd5c32 Poul Sander 2024-10-05 08:44 16
  https://github.com/fmtlib/fmt/pull/4055). Thanks @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 17
47fd5c32 Poul Sander 2024-10-05 08:44 18
- Made `volatile void*` formattable
47fd5c32 Poul Sander 2024-10-05 08:44 19
  (https://github.com/fmtlib/fmt/issues/4049,
47fd5c32 Poul Sander 2024-10-05 08:44 20
  https://github.com/fmtlib/fmt/pull/4056). Thanks @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 21
47fd5c32 Poul Sander 2024-10-05 08:44 22
- Made `Glib::ustring` not be confused with `std::string`
47fd5c32 Poul Sander 2024-10-05 08:44 23
  (https://github.com/fmtlib/fmt/issues/4052).
47fd5c32 Poul Sander 2024-10-05 08:44 24
47fd5c32 Poul Sander 2024-10-05 08:44 25
- Made `fmt::context` iterator compatible with STL algorithms that rely on
47fd5c32 Poul Sander 2024-10-05 08:44 26
  iterator category (https://github.com/fmtlib/fmt/issues/4079).
47fd5c32 Poul Sander 2024-10-05 08:44 27
47fd5c32 Poul Sander 2024-10-05 08:44 28
# 11.0.1 - 2024-07-05
47fd5c32 Poul Sander 2024-10-05 08:44 29
47fd5c32 Poul Sander 2024-10-05 08:44 30
- Fixed version number in the inline namespace
47fd5c32 Poul Sander 2024-10-05 08:44 31
  (https://github.com/fmtlib/fmt/issues/4047).
47fd5c32 Poul Sander 2024-10-05 08:44 32
47fd5c32 Poul Sander 2024-10-05 08:44 33
- Fixed disabling Unicode support via CMake
47fd5c32 Poul Sander 2024-10-05 08:44 34
  (https://github.com/fmtlib/fmt/issues/4051).
47fd5c32 Poul Sander 2024-10-05 08:44 35
47fd5c32 Poul Sander 2024-10-05 08:44 36
- Fixed deprecated `visit_format_arg` (https://github.com/fmtlib/fmt/pull/4043).
47fd5c32 Poul Sander 2024-10-05 08:44 37
  Thanks @nebkat.
47fd5c32 Poul Sander 2024-10-05 08:44 38
47fd5c32 Poul Sander 2024-10-05 08:44 39
- Fixed handling of a sign and improved the `std::complex` formater
47fd5c32 Poul Sander 2024-10-05 08:44 40
  (https://github.com/fmtlib/fmt/pull/4034,
47fd5c32 Poul Sander 2024-10-05 08:44 41
  https://github.com/fmtlib/fmt/pull/4050). Thanks @tesch1 and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 42
47fd5c32 Poul Sander 2024-10-05 08:44 43
- Fixed ADL issues in `fmt::printf` when using C++20
47fd5c32 Poul Sander 2024-10-05 08:44 44
  (https://github.com/fmtlib/fmt/pull/4042). Thanks @toge.
47fd5c32 Poul Sander 2024-10-05 08:44 45
47fd5c32 Poul Sander 2024-10-05 08:44 46
- Removed a redundant check in the formatter for `std::expected`
47fd5c32 Poul Sander 2024-10-05 08:44 47
  (https://github.com/fmtlib/fmt/pull/4040). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 48
47fd5c32 Poul Sander 2024-10-05 08:44 49
# 11.0.0 - 2024-07-01
47fd5c32 Poul Sander 2024-10-05 08:44 50
47fd5c32 Poul Sander 2024-10-05 08:44 51
- Added `fmt/base.h` which provides a subset of the API with minimal include
47fd5c32 Poul Sander 2024-10-05 08:44 52
  dependencies and enough functionality to replace all uses of the `printf`
47fd5c32 Poul Sander 2024-10-05 08:44 53
  family of functions. This brings the compile time of code using {fmt} much
47fd5c32 Poul Sander 2024-10-05 08:44 54
  closer to the equivalent `printf` code as shown on the following benchmark
47fd5c32 Poul Sander 2024-10-05 08:44 55
  that compiles 100 source files:
47fd5c32 Poul Sander 2024-10-05 08:44 56
47fd5c32 Poul Sander 2024-10-05 08:44 57
  | Method       | Compile Time (s) |
47fd5c32 Poul Sander 2024-10-05 08:44 58
  |--------------|------------------|
47fd5c32 Poul Sander 2024-10-05 08:44 59
  | printf       | 1.6              |
47fd5c32 Poul Sander 2024-10-05 08:44 60
  | IOStreams    | 25.9             |
47fd5c32 Poul Sander 2024-10-05 08:44 61
  | fmt 10.x     | 19.0             |
47fd5c32 Poul Sander 2024-10-05 08:44 62
  | fmt 11.0     | 4.8              |
47fd5c32 Poul Sander 2024-10-05 08:44 63
  | tinyformat   | 29.1             |
47fd5c32 Poul Sander 2024-10-05 08:44 64
  | Boost Format | 55.0             |
47fd5c32 Poul Sander 2024-10-05 08:44 65
47fd5c32 Poul Sander 2024-10-05 08:44 66
  This gives almost 4x improvement in build speed compared to version 10.
47fd5c32 Poul Sander 2024-10-05 08:44 67
  Note that the benchmark is purely formatting code and includes. In real
47fd5c32 Poul Sander 2024-10-05 08:44 68
  projects the difference from `printf` will be smaller partly because common
47fd5c32 Poul Sander 2024-10-05 08:44 69
  standard headers will be included in almost any translation unit (TU) anyway.
47fd5c32 Poul Sander 2024-10-05 08:44 70
  In particular, in every case except `printf` above ~1s is spent in total on
47fd5c32 Poul Sander 2024-10-05 08:44 71
  including `<type_traits>` in all TUs.
47fd5c32 Poul Sander 2024-10-05 08:44 72
47fd5c32 Poul Sander 2024-10-05 08:44 73
- Optimized includes in other headers such as `fmt/format.h` which is now
47fd5c32 Poul Sander 2024-10-05 08:44 74
  roughly equivalent to the old `fmt/core.h` in terms of build speed.
47fd5c32 Poul Sander 2024-10-05 08:44 75
47fd5c32 Poul Sander 2024-10-05 08:44 76
- Migrated the documentation at https://fmt.dev/ from Sphinx to MkDocs.
47fd5c32 Poul Sander 2024-10-05 08:44 77
47fd5c32 Poul Sander 2024-10-05 08:44 78
- Improved C++20 module support
47fd5c32 Poul Sander 2024-10-05 08:44 79
  (https://github.com/fmtlib/fmt/issues/3990,
47fd5c32 Poul Sander 2024-10-05 08:44 80
  https://github.com/fmtlib/fmt/pull/3991,
47fd5c32 Poul Sander 2024-10-05 08:44 81
  https://github.com/fmtlib/fmt/issues/3993,
47fd5c32 Poul Sander 2024-10-05 08:44 82
  https://github.com/fmtlib/fmt/pull/3994,
47fd5c32 Poul Sander 2024-10-05 08:44 83
  https://github.com/fmtlib/fmt/pull/3997,
47fd5c32 Poul Sander 2024-10-05 08:44 84
  https://github.com/fmtlib/fmt/pull/3998,
47fd5c32 Poul Sander 2024-10-05 08:44 85
  https://github.com/fmtlib/fmt/pull/4004,
47fd5c32 Poul Sander 2024-10-05 08:44 86
  https://github.com/fmtlib/fmt/pull/4005,
47fd5c32 Poul Sander 2024-10-05 08:44 87
  https://github.com/fmtlib/fmt/pull/4006,
47fd5c32 Poul Sander 2024-10-05 08:44 88
  https://github.com/fmtlib/fmt/pull/4013,
47fd5c32 Poul Sander 2024-10-05 08:44 89
  https://github.com/fmtlib/fmt/pull/4027,
47fd5c32 Poul Sander 2024-10-05 08:44 90
  https://github.com/fmtlib/fmt/pull/4029). In particular, native CMake support
47fd5c32 Poul Sander 2024-10-05 08:44 91
  for modules is now used if available. Thanks @yujincheng08 and @matt77hias.
47fd5c32 Poul Sander 2024-10-05 08:44 92
47fd5c32 Poul Sander 2024-10-05 08:44 93
- Added an option to replace standard includes with `import std` enabled via
47fd5c32 Poul Sander 2024-10-05 08:44 94
  the `FMT_IMPORT_STD` macro (https://github.com/fmtlib/fmt/issues/3921,
47fd5c32 Poul Sander 2024-10-05 08:44 95
  https://github.com/fmtlib/fmt/pull/3928). Thanks @matt77hias.
47fd5c32 Poul Sander 2024-10-05 08:44 96
47fd5c32 Poul Sander 2024-10-05 08:44 97
- Exported `fmt::range_format`, `fmt::range_format_kind` and
47fd5c32 Poul Sander 2024-10-05 08:44 98
  `fmt::compiled_string` from the `fmt` module
47fd5c32 Poul Sander 2024-10-05 08:44 99
  (https://github.com/fmtlib/fmt/pull/3970,
47fd5c32 Poul Sander 2024-10-05 08:44 100
  https://github.com/fmtlib/fmt/pull/3999).
47fd5c32 Poul Sander 2024-10-05 08:44 101
  Thanks @matt77hias and @yujincheng08.
47fd5c32 Poul Sander 2024-10-05 08:44 102
47fd5c32 Poul Sander 2024-10-05 08:44 103
- Improved integration with stdio in `fmt::print`, enabling direct writes
47fd5c32 Poul Sander 2024-10-05 08:44 104
  into a C stream buffer in common cases. This may give significant
47fd5c32 Poul Sander 2024-10-05 08:44 105
  performance improvements ranging from tens of percent to [2x](
47fd5c32 Poul Sander 2024-10-05 08:44 106
  https://stackoverflow.com/a/78457454/471164) and eliminates dynamic memory
47fd5c32 Poul Sander 2024-10-05 08:44 107
  allocations on the buffer level. It is currently enabled for built-in and
47fd5c32 Poul Sander 2024-10-05 08:44 108
  string types with wider availability coming up in future releases.
47fd5c32 Poul Sander 2024-10-05 08:44 109
47fd5c32 Poul Sander 2024-10-05 08:44 110
  For example, it gives ~24% improvement on a [simple benchmark](
47fd5c32 Poul Sander 2024-10-05 08:44 111
  https://isocpp.org/files/papers/P3107R5.html#perf) compiled with Apple clang
47fd5c32 Poul Sander 2024-10-05 08:44 112
  version 15.0.0 (clang-1500.1.0.2.5) and run on macOS 14.2.1:
47fd5c32 Poul Sander 2024-10-05 08:44 113
47fd5c32 Poul Sander 2024-10-05 08:44 114
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 115
  -------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 116
  Benchmark             Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 117
  -------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 118
  printf             81.8 ns         81.5 ns      8496899
47fd5c32 Poul Sander 2024-10-05 08:44 119
  fmt::print (10.x)  63.8 ns         61.9 ns     11524151
47fd5c32 Poul Sander 2024-10-05 08:44 120
  fmt::print (11.0)  51.3 ns         51.0 ns     13846580
47fd5c32 Poul Sander 2024-10-05 08:44 121
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 122
47fd5c32 Poul Sander 2024-10-05 08:44 123
- Improved safety of `fmt::format_to` when writing to an array
47fd5c32 Poul Sander 2024-10-05 08:44 124
  (https://github.com/fmtlib/fmt/pull/3805).
47fd5c32 Poul Sander 2024-10-05 08:44 125
  For example ([godbolt](https://www.godbolt.org/z/cYrn8dWY8)):
47fd5c32 Poul Sander 2024-10-05 08:44 126
47fd5c32 Poul Sander 2024-10-05 08:44 127
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 128
  auto volkswagen = char[4];
47fd5c32 Poul Sander 2024-10-05 08:44 129
  auto result = fmt::format_to(volkswagen, "elephant");
47fd5c32 Poul Sander 2024-10-05 08:44 130
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 131
47fd5c32 Poul Sander 2024-10-05 08:44 132
  no longer results in a buffer overflow. Instead the output will be truncated
47fd5c32 Poul Sander 2024-10-05 08:44 133
  and you can get the end iterator and whether truncation occurred from the
47fd5c32 Poul Sander 2024-10-05 08:44 134
  `result` object. Thanks @ThePhD.
47fd5c32 Poul Sander 2024-10-05 08:44 135
47fd5c32 Poul Sander 2024-10-05 08:44 136
- Enabled Unicode support by default in MSVC, bringing it on par with other
47fd5c32 Poul Sander 2024-10-05 08:44 137
  compilers and making it unnecessary for users to enable it explicitly.
47fd5c32 Poul Sander 2024-10-05 08:44 138
  Most of {fmt} is encoding-agnostic but this prevents mojibake in places
47fd5c32 Poul Sander 2024-10-05 08:44 139
  where encoding matters such as path formatting and terminal output.
47fd5c32 Poul Sander 2024-10-05 08:44 140
  You can control the Unicode support via the CMake `FMT_UNICODE` option.
47fd5c32 Poul Sander 2024-10-05 08:44 141
  Note that some {fmt} packages such as the one in vcpkg have already been
47fd5c32 Poul Sander 2024-10-05 08:44 142
  compiled with Unicode enabled.
47fd5c32 Poul Sander 2024-10-05 08:44 143
47fd5c32 Poul Sander 2024-10-05 08:44 144
- Added a formatter for `std::expected`
47fd5c32 Poul Sander 2024-10-05 08:44 145
  (https://github.com/fmtlib/fmt/pull/3834). Thanks @dominicpoeschko.
47fd5c32 Poul Sander 2024-10-05 08:44 146
47fd5c32 Poul Sander 2024-10-05 08:44 147
- Added a formatter for `std::complex`
47fd5c32 Poul Sander 2024-10-05 08:44 148
  (https://github.com/fmtlib/fmt/issues/1467,
47fd5c32 Poul Sander 2024-10-05 08:44 149
  https://github.com/fmtlib/fmt/issues/3886,
47fd5c32 Poul Sander 2024-10-05 08:44 150
  https://github.com/fmtlib/fmt/pull/3892,
47fd5c32 Poul Sander 2024-10-05 08:44 151
  https://github.com/fmtlib/fmt/pull/3900). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 152
47fd5c32 Poul Sander 2024-10-05 08:44 153
- Added a formatter for `std::type_info`
47fd5c32 Poul Sander 2024-10-05 08:44 154
  (https://github.com/fmtlib/fmt/pull/3978). Thanks @matt77hias.
47fd5c32 Poul Sander 2024-10-05 08:44 155
47fd5c32 Poul Sander 2024-10-05 08:44 156
- Specialized `formatter` for `std::basic_string` types with custom traits
47fd5c32 Poul Sander 2024-10-05 08:44 157
  and allocators (https://github.com/fmtlib/fmt/issues/3938,
47fd5c32 Poul Sander 2024-10-05 08:44 158
  https://github.com/fmtlib/fmt/pull/3943). Thanks @dieram3.
47fd5c32 Poul Sander 2024-10-05 08:44 159
47fd5c32 Poul Sander 2024-10-05 08:44 160
- Added formatters for `std::chrono::day`, `std::chrono::month`,
47fd5c32 Poul Sander 2024-10-05 08:44 161
  `std::chrono::year` and `std::chrono::year_month_day`
47fd5c32 Poul Sander 2024-10-05 08:44 162
  (https://github.com/fmtlib/fmt/issues/3758,
47fd5c32 Poul Sander 2024-10-05 08:44 163
  https://github.com/fmtlib/fmt/issues/3772,
47fd5c32 Poul Sander 2024-10-05 08:44 164
  https://github.com/fmtlib/fmt/pull/3906,
47fd5c32 Poul Sander 2024-10-05 08:44 165
  https://github.com/fmtlib/fmt/pull/3913). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 166
47fd5c32 Poul Sander 2024-10-05 08:44 167
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 168
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 169
  #include <fmt/color.h>
47fd5c32 Poul Sander 2024-10-05 08:44 170
47fd5c32 Poul Sander 2024-10-05 08:44 171
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 172
    fmt::print(fg(fmt::color::green), "{}\n", std::chrono::day(7));
47fd5c32 Poul Sander 2024-10-05 08:44 173
  }
47fd5c32 Poul Sander 2024-10-05 08:44 174
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 175
47fd5c32 Poul Sander 2024-10-05 08:44 176
  prints a green day:
47fd5c32 Poul Sander 2024-10-05 08:44 177
47fd5c32 Poul Sander 2024-10-05 08:44 178
  <img width="306" alt="image" src="https://github.com/fmtlib/fmt/assets/576385/6e395f8b-451a-4cf7-bccc-ee92ca0dec65">
47fd5c32 Poul Sander 2024-10-05 08:44 179
47fd5c32 Poul Sander 2024-10-05 08:44 180
  Thanks @zivshek.
47fd5c32 Poul Sander 2024-10-05 08:44 181
47fd5c32 Poul Sander 2024-10-05 08:44 182
- Fixed handling of precision in `%S` (https://github.com/fmtlib/fmt/issues/3794,
47fd5c32 Poul Sander 2024-10-05 08:44 183
  https://github.com/fmtlib/fmt/pull/3814). Thanks @js324.
47fd5c32 Poul Sander 2024-10-05 08:44 184
47fd5c32 Poul Sander 2024-10-05 08:44 185
- Added support for the `-` specifier (glibc `strftime` extension) to day of
47fd5c32 Poul Sander 2024-10-05 08:44 186
  the month (`%d`) and week of the year (`%W`, `%U`, `%V`) specifiers
47fd5c32 Poul Sander 2024-10-05 08:44 187
  (https://github.com/fmtlib/fmt/pull/3976). Thanks @ZaheenJ.
47fd5c32 Poul Sander 2024-10-05 08:44 188
47fd5c32 Poul Sander 2024-10-05 08:44 189
- Fixed the scope of the `-` extension in chrono formatting so that it doesn't
47fd5c32 Poul Sander 2024-10-05 08:44 190
  apply to subsequent specifiers (https://github.com/fmtlib/fmt/issues/3811,
47fd5c32 Poul Sander 2024-10-05 08:44 191
  https://github.com/fmtlib/fmt/pull/3812). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 192
47fd5c32 Poul Sander 2024-10-05 08:44 193
- Improved handling of `time_point::min()`
47fd5c32 Poul Sander 2024-10-05 08:44 194
  (https://github.com/fmtlib/fmt/issues/3282).
47fd5c32 Poul Sander 2024-10-05 08:44 195
47fd5c32 Poul Sander 2024-10-05 08:44 196
- Added support for character range formatting
47fd5c32 Poul Sander 2024-10-05 08:44 197
  (https://github.com/fmtlib/fmt/issues/3857,
47fd5c32 Poul Sander 2024-10-05 08:44 198
  https://github.com/fmtlib/fmt/pull/3863). Thanks @js324.
47fd5c32 Poul Sander 2024-10-05 08:44 199
47fd5c32 Poul Sander 2024-10-05 08:44 200
- Added `string` and `debug_string` range formatters
47fd5c32 Poul Sander 2024-10-05 08:44 201
  (https://github.com/fmtlib/fmt/pull/3973,
47fd5c32 Poul Sander 2024-10-05 08:44 202
  https://github.com/fmtlib/fmt/pull/4024). Thanks @matt77hias.
47fd5c32 Poul Sander 2024-10-05 08:44 203
47fd5c32 Poul Sander 2024-10-05 08:44 204
- Enabled ADL for `begin` and `end` in `fmt::join`
47fd5c32 Poul Sander 2024-10-05 08:44 205
  (https://github.com/fmtlib/fmt/issues/3813,
47fd5c32 Poul Sander 2024-10-05 08:44 206
  https://github.com/fmtlib/fmt/pull/3824). Thanks @bbolli.
47fd5c32 Poul Sander 2024-10-05 08:44 207
47fd5c32 Poul Sander 2024-10-05 08:44 208
- Made contiguous iterator optimizations apply to `std::basic_string` iterators
47fd5c32 Poul Sander 2024-10-05 08:44 209
  (https://github.com/fmtlib/fmt/pull/3798). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 210
47fd5c32 Poul Sander 2024-10-05 08:44 211
- Added support for ranges with mutable `begin` and `end`
47fd5c32 Poul Sander 2024-10-05 08:44 212
  (https://github.com/fmtlib/fmt/issues/3752,
47fd5c32 Poul Sander 2024-10-05 08:44 213
  https://github.com/fmtlib/fmt/pull/3800,
47fd5c32 Poul Sander 2024-10-05 08:44 214
  https://github.com/fmtlib/fmt/pull/3955). Thanks @tcbrindle and @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 215
47fd5c32 Poul Sander 2024-10-05 08:44 216
- Added support for move-only iterators to `fmt::join`
47fd5c32 Poul Sander 2024-10-05 08:44 217
  (https://github.com/fmtlib/fmt/issues/3802,
47fd5c32 Poul Sander 2024-10-05 08:44 218
  https://github.com/fmtlib/fmt/pull/3946). Thanks @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 219
47fd5c32 Poul Sander 2024-10-05 08:44 220
- Moved range and iterator overloads of `fmt::join` to `fmt/ranges.h`, next
47fd5c32 Poul Sander 2024-10-05 08:44 221
  to other overloads.
47fd5c32 Poul Sander 2024-10-05 08:44 222
47fd5c32 Poul Sander 2024-10-05 08:44 223
- Fixed handling of types with `begin` returning `void` such as Eigen matrices
47fd5c32 Poul Sander 2024-10-05 08:44 224
  (https://github.com/fmtlib/fmt/issues/3839,
47fd5c32 Poul Sander 2024-10-05 08:44 225
  https://github.com/fmtlib/fmt/pull/3964). Thanks @Arghnews.
47fd5c32 Poul Sander 2024-10-05 08:44 226
47fd5c32 Poul Sander 2024-10-05 08:44 227
- Added an `fmt::formattable` concept (https://github.com/fmtlib/fmt/pull/3974).
47fd5c32 Poul Sander 2024-10-05 08:44 228
  Thanks @matt77hias.
47fd5c32 Poul Sander 2024-10-05 08:44 229
47fd5c32 Poul Sander 2024-10-05 08:44 230
- Added support for `__float128` (https://github.com/fmtlib/fmt/issues/3494).
47fd5c32 Poul Sander 2024-10-05 08:44 231
47fd5c32 Poul Sander 2024-10-05 08:44 232
- Fixed rounding issues when formatting `long double` with fixed precision
47fd5c32 Poul Sander 2024-10-05 08:44 233
  (https://github.com/fmtlib/fmt/issues/3539).
47fd5c32 Poul Sander 2024-10-05 08:44 234
47fd5c32 Poul Sander 2024-10-05 08:44 235
- Made `fmt::isnan` not trigger floating-point exception for NaN values
47fd5c32 Poul Sander 2024-10-05 08:44 236
  (https://github.com/fmtlib/fmt/issues/3948,
47fd5c32 Poul Sander 2024-10-05 08:44 237
  https://github.com/fmtlib/fmt/pull/3951). Thanks @alexdewar.
47fd5c32 Poul Sander 2024-10-05 08:44 238
47fd5c32 Poul Sander 2024-10-05 08:44 239
- Removed dependency on `<memory>` for `std::allocator_traits` when possible
47fd5c32 Poul Sander 2024-10-05 08:44 240
  (https://github.com/fmtlib/fmt/pull/3804). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 241
47fd5c32 Poul Sander 2024-10-05 08:44 242
- Enabled compile-time checks in formatting functions that take text colors and
47fd5c32 Poul Sander 2024-10-05 08:44 243
  styles.
47fd5c32 Poul Sander 2024-10-05 08:44 244
47fd5c32 Poul Sander 2024-10-05 08:44 245
- Deprecated wide stream overloads of `fmt::print` that take text styles.
47fd5c32 Poul Sander 2024-10-05 08:44 246
47fd5c32 Poul Sander 2024-10-05 08:44 247
- Made format string compilation work with clang 12 and later despite
47fd5c32 Poul Sander 2024-10-05 08:44 248
  only partial non-type template parameter support
47fd5c32 Poul Sander 2024-10-05 08:44 249
  (https://github.com/fmtlib/fmt/issues/4000,
47fd5c32 Poul Sander 2024-10-05 08:44 250
  https://github.com/fmtlib/fmt/pull/4001). Thanks @yujincheng08.
47fd5c32 Poul Sander 2024-10-05 08:44 251
47fd5c32 Poul Sander 2024-10-05 08:44 252
- Made `fmt::iterator_buffer`'s move constructor `noexcept`
47fd5c32 Poul Sander 2024-10-05 08:44 253
  (https://github.com/fmtlib/fmt/pull/3808). Thanks @waywardmonkeys.
47fd5c32 Poul Sander 2024-10-05 08:44 254
47fd5c32 Poul Sander 2024-10-05 08:44 255
- Started enforcing that `formatter::format` is const for compatibility
47fd5c32 Poul Sander 2024-10-05 08:44 256
  with `std::format` (https://github.com/fmtlib/fmt/issues/3447).
47fd5c32 Poul Sander 2024-10-05 08:44 257
47fd5c32 Poul Sander 2024-10-05 08:44 258
- Added `fmt::basic_format_arg::visit` and deprecated `fmt::visit_format_arg`.
47fd5c32 Poul Sander 2024-10-05 08:44 259
47fd5c32 Poul Sander 2024-10-05 08:44 260
- Made `fmt::basic_string_view` not constructible from `nullptr` for
47fd5c32 Poul Sander 2024-10-05 08:44 261
  consistency with `std::string_view` in C++23
47fd5c32 Poul Sander 2024-10-05 08:44 262
  (https://github.com/fmtlib/fmt/pull/3846). Thanks @dalle.
47fd5c32 Poul Sander 2024-10-05 08:44 263
47fd5c32 Poul Sander 2024-10-05 08:44 264
- Fixed `fmt::group_digits` for negative integers
47fd5c32 Poul Sander 2024-10-05 08:44 265
  (https://github.com/fmtlib/fmt/issues/3891,
47fd5c32 Poul Sander 2024-10-05 08:44 266
  https://github.com/fmtlib/fmt/pull/3901). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 267
47fd5c32 Poul Sander 2024-10-05 08:44 268
- Fixed handling of negative ids in `fmt::basic_format_args::get`
47fd5c32 Poul Sander 2024-10-05 08:44 269
  (https://github.com/fmtlib/fmt/pull/3945). Thanks @marlenecota.
47fd5c32 Poul Sander 2024-10-05 08:44 270
47fd5c32 Poul Sander 2024-10-05 08:44 271
- Improved named argument validation
47fd5c32 Poul Sander 2024-10-05 08:44 272
  (https://github.com/fmtlib/fmt/issues/3817).
47fd5c32 Poul Sander 2024-10-05 08:44 273
47fd5c32 Poul Sander 2024-10-05 08:44 274
- Disabled copy construction/assignment for `fmt::format_arg_store` and
47fd5c32 Poul Sander 2024-10-05 08:44 275
  fixed moved construction (https://github.com/fmtlib/fmt/pull/3833).
47fd5c32 Poul Sander 2024-10-05 08:44 276
  Thanks @ivafanas.
47fd5c32 Poul Sander 2024-10-05 08:44 277
47fd5c32 Poul Sander 2024-10-05 08:44 278
- Worked around a locale issue in RHEL/devtoolset
47fd5c32 Poul Sander 2024-10-05 08:44 279
  (https://github.com/fmtlib/fmt/issues/3858,
47fd5c32 Poul Sander 2024-10-05 08:44 280
  https://github.com/fmtlib/fmt/pull/3859). Thanks @g199209.
47fd5c32 Poul Sander 2024-10-05 08:44 281
47fd5c32 Poul Sander 2024-10-05 08:44 282
- Added RTTI detection for MSVC (https://github.com/fmtlib/fmt/pull/3821,
47fd5c32 Poul Sander 2024-10-05 08:44 283
  https://github.com/fmtlib/fmt/pull/3963). Thanks @edo9300.
47fd5c32 Poul Sander 2024-10-05 08:44 284
47fd5c32 Poul Sander 2024-10-05 08:44 285
- Migrated the documentation from Sphinx to MkDocs.
47fd5c32 Poul Sander 2024-10-05 08:44 286
47fd5c32 Poul Sander 2024-10-05 08:44 287
- Improved documentation and README
47fd5c32 Poul Sander 2024-10-05 08:44 288
  (https://github.com/fmtlib/fmt/issues/3775,
47fd5c32 Poul Sander 2024-10-05 08:44 289
  https://github.com/fmtlib/fmt/pull/3784,
47fd5c32 Poul Sander 2024-10-05 08:44 290
  https://github.com/fmtlib/fmt/issues/3788,
47fd5c32 Poul Sander 2024-10-05 08:44 291
  https://github.com/fmtlib/fmt/pull/3789,
47fd5c32 Poul Sander 2024-10-05 08:44 292
  https://github.com/fmtlib/fmt/pull/3793,
47fd5c32 Poul Sander 2024-10-05 08:44 293
  https://github.com/fmtlib/fmt/issues/3818,
47fd5c32 Poul Sander 2024-10-05 08:44 294
  https://github.com/fmtlib/fmt/pull/3820,
47fd5c32 Poul Sander 2024-10-05 08:44 295
  https://github.com/fmtlib/fmt/pull/3822,
47fd5c32 Poul Sander 2024-10-05 08:44 296
  https://github.com/fmtlib/fmt/pull/3843,
47fd5c32 Poul Sander 2024-10-05 08:44 297
  https://github.com/fmtlib/fmt/pull/3890,
47fd5c32 Poul Sander 2024-10-05 08:44 298
  https://github.com/fmtlib/fmt/issues/3894,
47fd5c32 Poul Sander 2024-10-05 08:44 299
  https://github.com/fmtlib/fmt/pull/3895,
47fd5c32 Poul Sander 2024-10-05 08:44 300
  https://github.com/fmtlib/fmt/pull/3905,
47fd5c32 Poul Sander 2024-10-05 08:44 301
  https://github.com/fmtlib/fmt/issues/3942,
47fd5c32 Poul Sander 2024-10-05 08:44 302
  https://github.com/fmtlib/fmt/pull/4008).
47fd5c32 Poul Sander 2024-10-05 08:44 303
  Thanks @zencatalyst, WolleTD, @tupaschoal, @Dobiasd, @frank-weinberg, @bbolli,
47fd5c32 Poul Sander 2024-10-05 08:44 304
  @phprus, @waywardmonkeys, @js324 and @tchaikov.
47fd5c32 Poul Sander 2024-10-05 08:44 305
47fd5c32 Poul Sander 2024-10-05 08:44 306
- Improved CI and tests
47fd5c32 Poul Sander 2024-10-05 08:44 307
  (https://github.com/fmtlib/fmt/issues/3878,
47fd5c32 Poul Sander 2024-10-05 08:44 308
  https://github.com/fmtlib/fmt/pull/3883,
47fd5c32 Poul Sander 2024-10-05 08:44 309
  https://github.com/fmtlib/fmt/issues/3897,
47fd5c32 Poul Sander 2024-10-05 08:44 310
  https://github.com/fmtlib/fmt/pull/3979,
47fd5c32 Poul Sander 2024-10-05 08:44 311
  https://github.com/fmtlib/fmt/pull/3980,
47fd5c32 Poul Sander 2024-10-05 08:44 312
  https://github.com/fmtlib/fmt/pull/3988,
47fd5c32 Poul Sander 2024-10-05 08:44 313
  https://github.com/fmtlib/fmt/pull/4010,
47fd5c32 Poul Sander 2024-10-05 08:44 314
  https://github.com/fmtlib/fmt/pull/4012,
47fd5c32 Poul Sander 2024-10-05 08:44 315
  https://github.com/fmtlib/fmt/pull/4038).
47fd5c32 Poul Sander 2024-10-05 08:44 316
  Thanks @vgorrX, @waywardmonkeys, @tchaikov and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 317
47fd5c32 Poul Sander 2024-10-05 08:44 318
- Fixed buffer overflow when using format string compilation with debug format
47fd5c32 Poul Sander 2024-10-05 08:44 319
  and `std::back_insert_iterator` (https://github.com/fmtlib/fmt/issues/3795,
47fd5c32 Poul Sander 2024-10-05 08:44 320
  https://github.com/fmtlib/fmt/pull/3797). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 321
47fd5c32 Poul Sander 2024-10-05 08:44 322
- Improved Bazel support
47fd5c32 Poul Sander 2024-10-05 08:44 323
  (https://github.com/fmtlib/fmt/pull/3792,
47fd5c32 Poul Sander 2024-10-05 08:44 324
  https://github.com/fmtlib/fmt/pull/3801,
47fd5c32 Poul Sander 2024-10-05 08:44 325
  https://github.com/fmtlib/fmt/pull/3962,
47fd5c32 Poul Sander 2024-10-05 08:44 326
  https://github.com/fmtlib/fmt/pull/3965). Thanks @Vertexwahn.
47fd5c32 Poul Sander 2024-10-05 08:44 327
47fd5c32 Poul Sander 2024-10-05 08:44 328
- Improved/fixed the CMake config
47fd5c32 Poul Sander 2024-10-05 08:44 329
  (https://github.com/fmtlib/fmt/issues/3777,
47fd5c32 Poul Sander 2024-10-05 08:44 330
  https://github.com/fmtlib/fmt/pull/3783,
47fd5c32 Poul Sander 2024-10-05 08:44 331
  https://github.com/fmtlib/fmt/issues/3847,
47fd5c32 Poul Sander 2024-10-05 08:44 332
  https://github.com/fmtlib/fmt/pull/3907). Thanks @phprus and @xTachyon.
47fd5c32 Poul Sander 2024-10-05 08:44 333
47fd5c32 Poul Sander 2024-10-05 08:44 334
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 335
  (https://github.com/fmtlib/fmt/issues/3685,
47fd5c32 Poul Sander 2024-10-05 08:44 336
  https://github.com/fmtlib/fmt/issues/3769,
47fd5c32 Poul Sander 2024-10-05 08:44 337
  https://github.com/fmtlib/fmt/issues/3796,
47fd5c32 Poul Sander 2024-10-05 08:44 338
  https://github.com/fmtlib/fmt/issues/3803,
47fd5c32 Poul Sander 2024-10-05 08:44 339
  https://github.com/fmtlib/fmt/pull/3806,
47fd5c32 Poul Sander 2024-10-05 08:44 340
  https://github.com/fmtlib/fmt/pull/3807,
47fd5c32 Poul Sander 2024-10-05 08:44 341
  https://github.com/fmtlib/fmt/issues/3809,
47fd5c32 Poul Sander 2024-10-05 08:44 342
  https://github.com/fmtlib/fmt/pull/3810,
47fd5c32 Poul Sander 2024-10-05 08:44 343
  https://github.com/fmtlib/fmt/issues/3830,
47fd5c32 Poul Sander 2024-10-05 08:44 344
  https://github.com/fmtlib/fmt/pull/3832,
47fd5c32 Poul Sander 2024-10-05 08:44 345
  https://github.com/fmtlib/fmt/issues/3835,
47fd5c32 Poul Sander 2024-10-05 08:44 346
  https://github.com/fmtlib/fmt/pull/3844,
47fd5c32 Poul Sander 2024-10-05 08:44 347
  https://github.com/fmtlib/fmt/issues/3854,
47fd5c32 Poul Sander 2024-10-05 08:44 348
  https://github.com/fmtlib/fmt/pull/3856,
47fd5c32 Poul Sander 2024-10-05 08:44 349
  https://github.com/fmtlib/fmt/pull/3865,
47fd5c32 Poul Sander 2024-10-05 08:44 350
  https://github.com/fmtlib/fmt/pull/3866,
47fd5c32 Poul Sander 2024-10-05 08:44 351
  https://github.com/fmtlib/fmt/pull/3880,
47fd5c32 Poul Sander 2024-10-05 08:44 352
  https://github.com/fmtlib/fmt/issues/3881,
47fd5c32 Poul Sander 2024-10-05 08:44 353
  https://github.com/fmtlib/fmt/issues/3884,
47fd5c32 Poul Sander 2024-10-05 08:44 354
  https://github.com/fmtlib/fmt/issues/3898,
47fd5c32 Poul Sander 2024-10-05 08:44 355
  https://github.com/fmtlib/fmt/pull/3899,
47fd5c32 Poul Sander 2024-10-05 08:44 356
  https://github.com/fmtlib/fmt/pull/3909,
47fd5c32 Poul Sander 2024-10-05 08:44 357
  https://github.com/fmtlib/fmt/pull/3917,
47fd5c32 Poul Sander 2024-10-05 08:44 358
  https://github.com/fmtlib/fmt/pull/3923,
47fd5c32 Poul Sander 2024-10-05 08:44 359
  https://github.com/fmtlib/fmt/pull/3924,
47fd5c32 Poul Sander 2024-10-05 08:44 360
  https://github.com/fmtlib/fmt/issues/3925,
47fd5c32 Poul Sander 2024-10-05 08:44 361
  https://github.com/fmtlib/fmt/pull/3930,
47fd5c32 Poul Sander 2024-10-05 08:44 362
  https://github.com/fmtlib/fmt/pull/3931,
47fd5c32 Poul Sander 2024-10-05 08:44 363
  https://github.com/fmtlib/fmt/pull/3933,
47fd5c32 Poul Sander 2024-10-05 08:44 364
  https://github.com/fmtlib/fmt/issues/3935,
47fd5c32 Poul Sander 2024-10-05 08:44 365
  https://github.com/fmtlib/fmt/pull/3937,
47fd5c32 Poul Sander 2024-10-05 08:44 366
  https://github.com/fmtlib/fmt/pull/3967,
47fd5c32 Poul Sander 2024-10-05 08:44 367
  https://github.com/fmtlib/fmt/pull/3968,
47fd5c32 Poul Sander 2024-10-05 08:44 368
  https://github.com/fmtlib/fmt/pull/3972,
47fd5c32 Poul Sander 2024-10-05 08:44 369
  https://github.com/fmtlib/fmt/pull/3983,
47fd5c32 Poul Sander 2024-10-05 08:44 370
  https://github.com/fmtlib/fmt/issues/3992,
47fd5c32 Poul Sander 2024-10-05 08:44 371
  https://github.com/fmtlib/fmt/pull/3995,
47fd5c32 Poul Sander 2024-10-05 08:44 372
  https://github.com/fmtlib/fmt/pull/4009,
47fd5c32 Poul Sander 2024-10-05 08:44 373
  https://github.com/fmtlib/fmt/pull/4023).
47fd5c32 Poul Sander 2024-10-05 08:44 374
  Thanks @hmbj, @phprus, @res2k, @Baardi, @matt77hias, @waywardmonkeys, @hmbj,
47fd5c32 Poul Sander 2024-10-05 08:44 375
  @yakra, @prlw1, @Arghnews, @mtillmann0, @ShifftC, @eepp, @jimmy-park and
47fd5c32 Poul Sander 2024-10-05 08:44 376
  @ChristianGebhardt.
47fd5c32 Poul Sander 2024-10-05 08:44 377
47fd5c32 Poul Sander 2024-10-05 08:44 378
# 10.2.1 - 2024-01-04
47fd5c32 Poul Sander 2024-10-05 08:44 379
47fd5c32 Poul Sander 2024-10-05 08:44 380
- Fixed ABI compatibility with earlier 10.x versions
47fd5c32 Poul Sander 2024-10-05 08:44 381
  (https://github.com/fmtlib/fmt/issues/3785,
47fd5c32 Poul Sander 2024-10-05 08:44 382
  https://github.com/fmtlib/fmt/pull/3786). Thanks @saraedum.
47fd5c32 Poul Sander 2024-10-05 08:44 383
47fd5c32 Poul Sander 2024-10-05 08:44 384
# 10.2.0 - 2024-01-01
47fd5c32 Poul Sander 2024-10-05 08:44 385
47fd5c32 Poul Sander 2024-10-05 08:44 386
- Added support for the `%j` specifier (the number of days) for
47fd5c32 Poul Sander 2024-10-05 08:44 387
  `std::chrono::duration` (https://github.com/fmtlib/fmt/issues/3643,
47fd5c32 Poul Sander 2024-10-05 08:44 388
  https://github.com/fmtlib/fmt/pull/3732). Thanks @intelfx.
47fd5c32 Poul Sander 2024-10-05 08:44 389
47fd5c32 Poul Sander 2024-10-05 08:44 390
- Added support for the chrono suffix for days and changed
47fd5c32 Poul Sander 2024-10-05 08:44 391
  the suffix for minutes from "m" to the correct "min"
47fd5c32 Poul Sander 2024-10-05 08:44 392
  (https://github.com/fmtlib/fmt/issues/3662,
47fd5c32 Poul Sander 2024-10-05 08:44 393
  https://github.com/fmtlib/fmt/pull/3664).
47fd5c32 Poul Sander 2024-10-05 08:44 394
  For example ([godbolt](https://godbolt.org/z/9KhMnq9ba)):
47fd5c32 Poul Sander 2024-10-05 08:44 395
47fd5c32 Poul Sander 2024-10-05 08:44 396
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 397
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 398
47fd5c32 Poul Sander 2024-10-05 08:44 399
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 400
    fmt::print("{}\n", std::chrono::days(42)); // prints "42d"
47fd5c32 Poul Sander 2024-10-05 08:44 401
  }
47fd5c32 Poul Sander 2024-10-05 08:44 402
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 403
47fd5c32 Poul Sander 2024-10-05 08:44 404
  Thanks @Richardk2n.
47fd5c32 Poul Sander 2024-10-05 08:44 405
47fd5c32 Poul Sander 2024-10-05 08:44 406
- Fixed an overflow in `std::chrono::time_point` formatting with large dates
47fd5c32 Poul Sander 2024-10-05 08:44 407
  (https://github.com/fmtlib/fmt/issues/3725,
47fd5c32 Poul Sander 2024-10-05 08:44 408
  https://github.com/fmtlib/fmt/pull/3727). Thanks @cschreib.
47fd5c32 Poul Sander 2024-10-05 08:44 409
47fd5c32 Poul Sander 2024-10-05 08:44 410
- Added a formatter for `std::source_location`
47fd5c32 Poul Sander 2024-10-05 08:44 411
  (https://github.com/fmtlib/fmt/pull/3730).
47fd5c32 Poul Sander 2024-10-05 08:44 412
  For example ([godbolt](https://godbolt.org/z/YajfKjhhr)):
47fd5c32 Poul Sander 2024-10-05 08:44 413
47fd5c32 Poul Sander 2024-10-05 08:44 414
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 415
  #include <source_location>
47fd5c32 Poul Sander 2024-10-05 08:44 416
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 417
47fd5c32 Poul Sander 2024-10-05 08:44 418
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 419
    fmt::print("{}\n", std::source_location::current());
47fd5c32 Poul Sander 2024-10-05 08:44 420
  }
47fd5c32 Poul Sander 2024-10-05 08:44 421
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 422
47fd5c32 Poul Sander 2024-10-05 08:44 423
  prints
47fd5c32 Poul Sander 2024-10-05 08:44 424
47fd5c32 Poul Sander 2024-10-05 08:44 425
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 426
  /app/example.cpp:5:51: int main()
47fd5c32 Poul Sander 2024-10-05 08:44 427
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 428
47fd5c32 Poul Sander 2024-10-05 08:44 429
  Thanks @felix642.
47fd5c32 Poul Sander 2024-10-05 08:44 430
47fd5c32 Poul Sander 2024-10-05 08:44 431
- Added a formatter for `std::bitset`
47fd5c32 Poul Sander 2024-10-05 08:44 432
  (https://github.com/fmtlib/fmt/pull/3660).
47fd5c32 Poul Sander 2024-10-05 08:44 433
  For example ([godbolt](https://godbolt.org/z/bdEaGeYxe)):
47fd5c32 Poul Sander 2024-10-05 08:44 434
47fd5c32 Poul Sander 2024-10-05 08:44 435
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 436
  #include <bitset>
47fd5c32 Poul Sander 2024-10-05 08:44 437
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 438
47fd5c32 Poul Sander 2024-10-05 08:44 439
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 440
    fmt::print("{}\n", std::bitset<6>(42)); // prints "101010"
47fd5c32 Poul Sander 2024-10-05 08:44 441
  }
47fd5c32 Poul Sander 2024-10-05 08:44 442
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 443
47fd5c32 Poul Sander 2024-10-05 08:44 444
  Thanks @muggenhor.
47fd5c32 Poul Sander 2024-10-05 08:44 445
47fd5c32 Poul Sander 2024-10-05 08:44 446
- Added an experimental `nested_formatter` that provides an easy way of
47fd5c32 Poul Sander 2024-10-05 08:44 447
  applying a formatter to one or more subobjects while automatically handling
47fd5c32 Poul Sander 2024-10-05 08:44 448
  width, fill and alignment. For example:
47fd5c32 Poul Sander 2024-10-05 08:44 449
47fd5c32 Poul Sander 2024-10-05 08:44 450
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 451
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 452
47fd5c32 Poul Sander 2024-10-05 08:44 453
  struct point {
47fd5c32 Poul Sander 2024-10-05 08:44 454
    double x, y;
47fd5c32 Poul Sander 2024-10-05 08:44 455
  };
47fd5c32 Poul Sander 2024-10-05 08:44 456
47fd5c32 Poul Sander 2024-10-05 08:44 457
  template <>
47fd5c32 Poul Sander 2024-10-05 08:44 458
  struct fmt::formatter<point> : nested_formatter<double> {
47fd5c32 Poul Sander 2024-10-05 08:44 459
    auto format(point p, format_context& ctx) const {
47fd5c32 Poul Sander 2024-10-05 08:44 460
      return write_padded(ctx, [=](auto out) {
47fd5c32 Poul Sander 2024-10-05 08:44 461
        return format_to(out, "({}, {})", nested(p.x), nested(p.y));
47fd5c32 Poul Sander 2024-10-05 08:44 462
      });
47fd5c32 Poul Sander 2024-10-05 08:44 463
    }
47fd5c32 Poul Sander 2024-10-05 08:44 464
  };
47fd5c32 Poul Sander 2024-10-05 08:44 465
47fd5c32 Poul Sander 2024-10-05 08:44 466
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 467
    fmt::print("[{:>20.2f}]", point{1, 2});
47fd5c32 Poul Sander 2024-10-05 08:44 468
  }
47fd5c32 Poul Sander 2024-10-05 08:44 469
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 470
47fd5c32 Poul Sander 2024-10-05 08:44 471
  prints
47fd5c32 Poul Sander 2024-10-05 08:44 472
47fd5c32 Poul Sander 2024-10-05 08:44 473
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 474
  [          (1.00, 2.00)]
47fd5c32 Poul Sander 2024-10-05 08:44 475
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 476
47fd5c32 Poul Sander 2024-10-05 08:44 477
- Added the generic representation (`g`) to `std::filesystem::path`
47fd5c32 Poul Sander 2024-10-05 08:44 478
  (https://github.com/fmtlib/fmt/issues/3715,
47fd5c32 Poul Sander 2024-10-05 08:44 479
  https://github.com/fmtlib/fmt/pull/3729). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 480
47fd5c32 Poul Sander 2024-10-05 08:44 481
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 482
  #include <filesystem>
47fd5c32 Poul Sander 2024-10-05 08:44 483
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 484
47fd5c32 Poul Sander 2024-10-05 08:44 485
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 486
    fmt::print("{:g}\n", std::filesystem::path("C:\\foo"));
47fd5c32 Poul Sander 2024-10-05 08:44 487
  }
47fd5c32 Poul Sander 2024-10-05 08:44 488
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 489
47fd5c32 Poul Sander 2024-10-05 08:44 490
  prints `"C:/foo"` on Windows.
47fd5c32 Poul Sander 2024-10-05 08:44 491
47fd5c32 Poul Sander 2024-10-05 08:44 492
  Thanks @js324.
47fd5c32 Poul Sander 2024-10-05 08:44 493
47fd5c32 Poul Sander 2024-10-05 08:44 494
- Made `format_as` work with references
47fd5c32 Poul Sander 2024-10-05 08:44 495
  (https://github.com/fmtlib/fmt/pull/3739). Thanks @tchaikov.
47fd5c32 Poul Sander 2024-10-05 08:44 496
47fd5c32 Poul Sander 2024-10-05 08:44 497
- Fixed formatting of invalid UTF-8 with precision
47fd5c32 Poul Sander 2024-10-05 08:44 498
  (https://github.com/fmtlib/fmt/issues/3284).
47fd5c32 Poul Sander 2024-10-05 08:44 499
47fd5c32 Poul Sander 2024-10-05 08:44 500
- Fixed an inconsistency between `fmt::to_string` and `fmt::format`
47fd5c32 Poul Sander 2024-10-05 08:44 501
  (https://github.com/fmtlib/fmt/issues/3684).
47fd5c32 Poul Sander 2024-10-05 08:44 502
47fd5c32 Poul Sander 2024-10-05 08:44 503
- Disallowed unsafe uses of `fmt::styled`
47fd5c32 Poul Sander 2024-10-05 08:44 504
  (https://github.com/fmtlib/fmt/issues/3625):
47fd5c32 Poul Sander 2024-10-05 08:44 505
47fd5c32 Poul Sander 2024-10-05 08:44 506
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 507
  auto s = fmt::styled(std::string("dangle"), fmt::emphasis::bold);
47fd5c32 Poul Sander 2024-10-05 08:44 508
  fmt::print("{}\n", s); // compile error
47fd5c32 Poul Sander 2024-10-05 08:44 509
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 510
47fd5c32 Poul Sander 2024-10-05 08:44 511
  Pass `fmt::styled(...)` as a parameter instead.
47fd5c32 Poul Sander 2024-10-05 08:44 512
47fd5c32 Poul Sander 2024-10-05 08:44 513
- Added a null check when formatting a C string with the `s` specifier
47fd5c32 Poul Sander 2024-10-05 08:44 514
  (https://github.com/fmtlib/fmt/issues/3706).
47fd5c32 Poul Sander 2024-10-05 08:44 515
47fd5c32 Poul Sander 2024-10-05 08:44 516
- Disallowed the `c` specifier for `bool`
47fd5c32 Poul Sander 2024-10-05 08:44 517
  (https://github.com/fmtlib/fmt/issues/3726,
47fd5c32 Poul Sander 2024-10-05 08:44 518
  https://github.com/fmtlib/fmt/pull/3734). Thanks @js324.
47fd5c32 Poul Sander 2024-10-05 08:44 519
47fd5c32 Poul Sander 2024-10-05 08:44 520
- Made the default formatting unlocalized in `fmt::ostream_formatter` for
47fd5c32 Poul Sander 2024-10-05 08:44 521
  consistency with the rest of the library
47fd5c32 Poul Sander 2024-10-05 08:44 522
  (https://github.com/fmtlib/fmt/issues/3460).
47fd5c32 Poul Sander 2024-10-05 08:44 523
47fd5c32 Poul Sander 2024-10-05 08:44 524
- Fixed localized formatting in bases other than decimal
47fd5c32 Poul Sander 2024-10-05 08:44 525
  (https://github.com/fmtlib/fmt/issues/3693,
47fd5c32 Poul Sander 2024-10-05 08:44 526
  https://github.com/fmtlib/fmt/pull/3750). Thanks @js324.
47fd5c32 Poul Sander 2024-10-05 08:44 527
47fd5c32 Poul Sander 2024-10-05 08:44 528
- Fixed a performance regression in experimental `fmt::ostream::print`
47fd5c32 Poul Sander 2024-10-05 08:44 529
  (https://github.com/fmtlib/fmt/issues/3674).
47fd5c32 Poul Sander 2024-10-05 08:44 530
47fd5c32 Poul Sander 2024-10-05 08:44 531
- Added synchronization with the underlying output stream when writing to
47fd5c32 Poul Sander 2024-10-05 08:44 532
  the Windows console
47fd5c32 Poul Sander 2024-10-05 08:44 533
  (https://github.com/fmtlib/fmt/pull/3668,
47fd5c32 Poul Sander 2024-10-05 08:44 534
  https://github.com/fmtlib/fmt/issues/3688,
47fd5c32 Poul Sander 2024-10-05 08:44 535
  https://github.com/fmtlib/fmt/pull/3689).
47fd5c32 Poul Sander 2024-10-05 08:44 536
  Thanks @Roman-Koshelev and @dimztimz.
47fd5c32 Poul Sander 2024-10-05 08:44 537
47fd5c32 Poul Sander 2024-10-05 08:44 538
- Changed to only export `format_error` when {fmt} is built as a shared
47fd5c32 Poul Sander 2024-10-05 08:44 539
  library (https://github.com/fmtlib/fmt/issues/3626,
47fd5c32 Poul Sander 2024-10-05 08:44 540
  https://github.com/fmtlib/fmt/pull/3627). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 541
47fd5c32 Poul Sander 2024-10-05 08:44 542
- Made `fmt::streamed` `constexpr`.
47fd5c32 Poul Sander 2024-10-05 08:44 543
  (https://github.com/fmtlib/fmt/pull/3650). Thanks @muggenhor.
47fd5c32 Poul Sander 2024-10-05 08:44 544
47fd5c32 Poul Sander 2024-10-05 08:44 545
- Made `fmt::format_int` `constexpr`
47fd5c32 Poul Sander 2024-10-05 08:44 546
  (https://github.com/fmtlib/fmt/issues/4031,
47fd5c32 Poul Sander 2024-10-05 08:44 547
  https://github.com/fmtlib/fmt/pull/4032). Thanks @dixlorenz.
47fd5c32 Poul Sander 2024-10-05 08:44 548
47fd5c32 Poul Sander 2024-10-05 08:44 549
- Enabled `consteval` on older versions of MSVC
47fd5c32 Poul Sander 2024-10-05 08:44 550
  (https://github.com/fmtlib/fmt/pull/3757). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 551
47fd5c32 Poul Sander 2024-10-05 08:44 552
- Added an option to build without `wchar_t` support on Windows
47fd5c32 Poul Sander 2024-10-05 08:44 553
  (https://github.com/fmtlib/fmt/issues/3631,
47fd5c32 Poul Sander 2024-10-05 08:44 554
  https://github.com/fmtlib/fmt/pull/3636). Thanks @glebm.
47fd5c32 Poul Sander 2024-10-05 08:44 555
47fd5c32 Poul Sander 2024-10-05 08:44 556
- Improved build and CI configuration
47fd5c32 Poul Sander 2024-10-05 08:44 557
  (https://github.com/fmtlib/fmt/pull/3679,
47fd5c32 Poul Sander 2024-10-05 08:44 558
  https://github.com/fmtlib/fmt/issues/3701,
47fd5c32 Poul Sander 2024-10-05 08:44 559
  https://github.com/fmtlib/fmt/pull/3702,
47fd5c32 Poul Sander 2024-10-05 08:44 560
  https://github.com/fmtlib/fmt/pull/3749).
47fd5c32 Poul Sander 2024-10-05 08:44 561
  Thanks @jcar87, @pklima and @tchaikov.
47fd5c32 Poul Sander 2024-10-05 08:44 562
47fd5c32 Poul Sander 2024-10-05 08:44 563
- Fixed various warnings, compilation and test issues
47fd5c32 Poul Sander 2024-10-05 08:44 564
  (https://github.com/fmtlib/fmt/issues/3607,
47fd5c32 Poul Sander 2024-10-05 08:44 565
  https://github.com/fmtlib/fmt/pull/3610,
47fd5c32 Poul Sander 2024-10-05 08:44 566
  https://github.com/fmtlib/fmt/pull/3624,
47fd5c32 Poul Sander 2024-10-05 08:44 567
  https://github.com/fmtlib/fmt/pull/3630,
47fd5c32 Poul Sander 2024-10-05 08:44 568
  https://github.com/fmtlib/fmt/pull/3634,
47fd5c32 Poul Sander 2024-10-05 08:44 569
  https://github.com/fmtlib/fmt/pull/3638,
47fd5c32 Poul Sander 2024-10-05 08:44 570
  https://github.com/fmtlib/fmt/issues/3645,
47fd5c32 Poul Sander 2024-10-05 08:44 571
  https://github.com/fmtlib/fmt/issues/3646,
47fd5c32 Poul Sander 2024-10-05 08:44 572
  https://github.com/fmtlib/fmt/pull/3647,
47fd5c32 Poul Sander 2024-10-05 08:44 573
  https://github.com/fmtlib/fmt/pull/3652,
47fd5c32 Poul Sander 2024-10-05 08:44 574
  https://github.com/fmtlib/fmt/issues/3654,
47fd5c32 Poul Sander 2024-10-05 08:44 575
  https://github.com/fmtlib/fmt/pull/3663,
47fd5c32 Poul Sander 2024-10-05 08:44 576
  https://github.com/fmtlib/fmt/issues/3670,
47fd5c32 Poul Sander 2024-10-05 08:44 577
  https://github.com/fmtlib/fmt/pull/3680,
47fd5c32 Poul Sander 2024-10-05 08:44 578
  https://github.com/fmtlib/fmt/issues/3694,
47fd5c32 Poul Sander 2024-10-05 08:44 579
  https://github.com/fmtlib/fmt/pull/3695,
47fd5c32 Poul Sander 2024-10-05 08:44 580
  https://github.com/fmtlib/fmt/pull/3699,
47fd5c32 Poul Sander 2024-10-05 08:44 581
  https://github.com/fmtlib/fmt/issues/3705,
47fd5c32 Poul Sander 2024-10-05 08:44 582
  https://github.com/fmtlib/fmt/issues/3710,
47fd5c32 Poul Sander 2024-10-05 08:44 583
  https://github.com/fmtlib/fmt/issues/3712,
47fd5c32 Poul Sander 2024-10-05 08:44 584
  https://github.com/fmtlib/fmt/pull/3713,
47fd5c32 Poul Sander 2024-10-05 08:44 585
  https://github.com/fmtlib/fmt/issues/3714,
47fd5c32 Poul Sander 2024-10-05 08:44 586
  https://github.com/fmtlib/fmt/pull/3716,
47fd5c32 Poul Sander 2024-10-05 08:44 587
  https://github.com/fmtlib/fmt/pull/3723,
47fd5c32 Poul Sander 2024-10-05 08:44 588
  https://github.com/fmtlib/fmt/issues/3738,
47fd5c32 Poul Sander 2024-10-05 08:44 589
  https://github.com/fmtlib/fmt/issues/3740,
47fd5c32 Poul Sander 2024-10-05 08:44 590
  https://github.com/fmtlib/fmt/pull/3741,
47fd5c32 Poul Sander 2024-10-05 08:44 591
  https://github.com/fmtlib/fmt/pull/3743,
47fd5c32 Poul Sander 2024-10-05 08:44 592
  https://github.com/fmtlib/fmt/issues/3745,
47fd5c32 Poul Sander 2024-10-05 08:44 593
  https://github.com/fmtlib/fmt/pull/3747,
47fd5c32 Poul Sander 2024-10-05 08:44 594
  https://github.com/fmtlib/fmt/pull/3748,
47fd5c32 Poul Sander 2024-10-05 08:44 595
  https://github.com/fmtlib/fmt/pull/3751,
47fd5c32 Poul Sander 2024-10-05 08:44 596
  https://github.com/fmtlib/fmt/pull/3754,
47fd5c32 Poul Sander 2024-10-05 08:44 597
  https://github.com/fmtlib/fmt/pull/3755,
47fd5c32 Poul Sander 2024-10-05 08:44 598
  https://github.com/fmtlib/fmt/issues/3760,
47fd5c32 Poul Sander 2024-10-05 08:44 599
  https://github.com/fmtlib/fmt/pull/3762,
47fd5c32 Poul Sander 2024-10-05 08:44 600
  https://github.com/fmtlib/fmt/issues/3763,
47fd5c32 Poul Sander 2024-10-05 08:44 601
  https://github.com/fmtlib/fmt/pull/3764,
47fd5c32 Poul Sander 2024-10-05 08:44 602
  https://github.com/fmtlib/fmt/issues/3774,
47fd5c32 Poul Sander 2024-10-05 08:44 603
  https://github.com/fmtlib/fmt/pull/3779).
47fd5c32 Poul Sander 2024-10-05 08:44 604
  Thanks @danakj, @vinayyadav3016, @cyyever, @phprus, @qimiko, @saschasc,
47fd5c32 Poul Sander 2024-10-05 08:44 605
  @gsjaardema, @lazka, @Zhaojun-Liu, @carlsmedstad, @hotwatermorning,
47fd5c32 Poul Sander 2024-10-05 08:44 606
  @cptFracassa, @kuguma, @PeterJohnson, @H1X4Dev, @asantoni, @eltociear,
47fd5c32 Poul Sander 2024-10-05 08:44 607
  @msimberg, @tchaikov, @waywardmonkeys.
47fd5c32 Poul Sander 2024-10-05 08:44 608
47fd5c32 Poul Sander 2024-10-05 08:44 609
- Improved documentation and README
47fd5c32 Poul Sander 2024-10-05 08:44 610
  (https://github.com/fmtlib/fmt/issues/2086,
47fd5c32 Poul Sander 2024-10-05 08:44 611
  https://github.com/fmtlib/fmt/issues/3637,
47fd5c32 Poul Sander 2024-10-05 08:44 612
  https://github.com/fmtlib/fmt/pull/3642,
47fd5c32 Poul Sander 2024-10-05 08:44 613
  https://github.com/fmtlib/fmt/pull/3653,
47fd5c32 Poul Sander 2024-10-05 08:44 614
  https://github.com/fmtlib/fmt/pull/3655,
47fd5c32 Poul Sander 2024-10-05 08:44 615
  https://github.com/fmtlib/fmt/pull/3661,
47fd5c32 Poul Sander 2024-10-05 08:44 616
  https://github.com/fmtlib/fmt/issues/3673,
47fd5c32 Poul Sander 2024-10-05 08:44 617
  https://github.com/fmtlib/fmt/pull/3677,
47fd5c32 Poul Sander 2024-10-05 08:44 618
  https://github.com/fmtlib/fmt/pull/3737,
47fd5c32 Poul Sander 2024-10-05 08:44 619
  https://github.com/fmtlib/fmt/issues/3742,
47fd5c32 Poul Sander 2024-10-05 08:44 620
  https://github.com/fmtlib/fmt/pull/3744).
47fd5c32 Poul Sander 2024-10-05 08:44 621
  Thanks @idzm, @perlun, @joycebrum, @fennewald, @reinhardt1053, @GeorgeLS.
47fd5c32 Poul Sander 2024-10-05 08:44 622
47fd5c32 Poul Sander 2024-10-05 08:44 623
- Updated CI dependencies
47fd5c32 Poul Sander 2024-10-05 08:44 624
  (https://github.com/fmtlib/fmt/pull/3615,
47fd5c32 Poul Sander 2024-10-05 08:44 625
  https://github.com/fmtlib/fmt/pull/3622,
47fd5c32 Poul Sander 2024-10-05 08:44 626
  https://github.com/fmtlib/fmt/pull/3623,
47fd5c32 Poul Sander 2024-10-05 08:44 627
  https://github.com/fmtlib/fmt/pull/3666,
47fd5c32 Poul Sander 2024-10-05 08:44 628
  https://github.com/fmtlib/fmt/pull/3696,
47fd5c32 Poul Sander 2024-10-05 08:44 629
  https://github.com/fmtlib/fmt/pull/3697,
47fd5c32 Poul Sander 2024-10-05 08:44 630
  https://github.com/fmtlib/fmt/pull/3759,
47fd5c32 Poul Sander 2024-10-05 08:44 631
  https://github.com/fmtlib/fmt/pull/3782).
47fd5c32 Poul Sander 2024-10-05 08:44 632
47fd5c32 Poul Sander 2024-10-05 08:44 633
# 10.1.1 - 2023-08-28
47fd5c32 Poul Sander 2024-10-05 08:44 634
47fd5c32 Poul Sander 2024-10-05 08:44 635
- Added formatters for `std::atomic` and `atomic_flag`
47fd5c32 Poul Sander 2024-10-05 08:44 636
  (https://github.com/fmtlib/fmt/pull/3574,
47fd5c32 Poul Sander 2024-10-05 08:44 637
  https://github.com/fmtlib/fmt/pull/3594).
47fd5c32 Poul Sander 2024-10-05 08:44 638
  Thanks @wangzw and @AlexGuteniev.
47fd5c32 Poul Sander 2024-10-05 08:44 639
- Fixed an error about partial specialization of `formatter<string>`
47fd5c32 Poul Sander 2024-10-05 08:44 640
  after instantiation when compiled with gcc and C++20
47fd5c32 Poul Sander 2024-10-05 08:44 641
  (https://github.com/fmtlib/fmt/issues/3584).
47fd5c32 Poul Sander 2024-10-05 08:44 642
- Fixed compilation as a C++20 module with gcc and clang
47fd5c32 Poul Sander 2024-10-05 08:44 643
  (https://github.com/fmtlib/fmt/issues/3587,
47fd5c32 Poul Sander 2024-10-05 08:44 644
  https://github.com/fmtlib/fmt/pull/3597,
47fd5c32 Poul Sander 2024-10-05 08:44 645
  https://github.com/fmtlib/fmt/pull/3605).
47fd5c32 Poul Sander 2024-10-05 08:44 646
  Thanks @MathewBensonCode.
47fd5c32 Poul Sander 2024-10-05 08:44 647
- Made `fmt::to_string` work with types that have `format_as`
47fd5c32 Poul Sander 2024-10-05 08:44 648
  overloads (https://github.com/fmtlib/fmt/pull/3575). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 649
- Made `formatted_size` work with integral format specifiers at
47fd5c32 Poul Sander 2024-10-05 08:44 650
  compile time (https://github.com/fmtlib/fmt/pull/3591).
47fd5c32 Poul Sander 2024-10-05 08:44 651
  Thanks @elbeno.
47fd5c32 Poul Sander 2024-10-05 08:44 652
- Fixed a warning about the `no_unique_address` attribute on clang-cl
47fd5c32 Poul Sander 2024-10-05 08:44 653
  (https://github.com/fmtlib/fmt/pull/3599). Thanks @lukester1975.
47fd5c32 Poul Sander 2024-10-05 08:44 654
- Improved compatibility with the legacy GBK encoding
47fd5c32 Poul Sander 2024-10-05 08:44 655
  (https://github.com/fmtlib/fmt/issues/3598,
47fd5c32 Poul Sander 2024-10-05 08:44 656
  https://github.com/fmtlib/fmt/pull/3599). Thanks @YuHuanTin.
47fd5c32 Poul Sander 2024-10-05 08:44 657
- Added OpenSSF Scorecard analysis
47fd5c32 Poul Sander 2024-10-05 08:44 658
  (https://github.com/fmtlib/fmt/issues/3530,
47fd5c32 Poul Sander 2024-10-05 08:44 659
  https://github.com/fmtlib/fmt/pull/3571). Thanks @joycebrum.
47fd5c32 Poul Sander 2024-10-05 08:44 660
- Updated CI dependencies
47fd5c32 Poul Sander 2024-10-05 08:44 661
  (https://github.com/fmtlib/fmt/pull/3591,
47fd5c32 Poul Sander 2024-10-05 08:44 662
  https://github.com/fmtlib/fmt/pull/3592,
47fd5c32 Poul Sander 2024-10-05 08:44 663
  https://github.com/fmtlib/fmt/pull/3593,
47fd5c32 Poul Sander 2024-10-05 08:44 664
  https://github.com/fmtlib/fmt/pull/3602).
47fd5c32 Poul Sander 2024-10-05 08:44 665
47fd5c32 Poul Sander 2024-10-05 08:44 666
# 10.1.0 - 2023-08-12
47fd5c32 Poul Sander 2024-10-05 08:44 667
47fd5c32 Poul Sander 2024-10-05 08:44 668
- Optimized format string compilation resulting in up to 40% speed up
47fd5c32 Poul Sander 2024-10-05 08:44 669
  in compiled `format_to` and \~4x speed up in compiled `format_to_n`
47fd5c32 Poul Sander 2024-10-05 08:44 670
  on a concatenation benchmark
47fd5c32 Poul Sander 2024-10-05 08:44 671
  (https://github.com/fmtlib/fmt/issues/3133,
47fd5c32 Poul Sander 2024-10-05 08:44 672
  https://github.com/fmtlib/fmt/issues/3484).
47fd5c32 Poul Sander 2024-10-05 08:44 673
47fd5c32 Poul Sander 2024-10-05 08:44 674
  {fmt} 10.0:
47fd5c32 Poul Sander 2024-10-05 08:44 675
47fd5c32 Poul Sander 2024-10-05 08:44 676
      ---------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 677
      Benchmark               Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 678
      ---------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 679
      BM_format_to         78.9 ns         78.9 ns      8881746
47fd5c32 Poul Sander 2024-10-05 08:44 680
      BM_format_to_n        568 ns          568 ns      1232089
47fd5c32 Poul Sander 2024-10-05 08:44 681
47fd5c32 Poul Sander 2024-10-05 08:44 682
  {fmt} 10.1:
47fd5c32 Poul Sander 2024-10-05 08:44 683
47fd5c32 Poul Sander 2024-10-05 08:44 684
      ---------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 685
      Benchmark               Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 686
      ---------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 687
      BM_format_to         54.9 ns         54.9 ns     12727944
47fd5c32 Poul Sander 2024-10-05 08:44 688
      BM_format_to_n        133 ns          133 ns      5257795
47fd5c32 Poul Sander 2024-10-05 08:44 689
47fd5c32 Poul Sander 2024-10-05 08:44 690
- Optimized storage of an empty allocator in `basic_memory_buffer`
47fd5c32 Poul Sander 2024-10-05 08:44 691
  (https://github.com/fmtlib/fmt/pull/3485). Thanks @Minty-Meeo.
47fd5c32 Poul Sander 2024-10-05 08:44 692
47fd5c32 Poul Sander 2024-10-05 08:44 693
- Added formatters for proxy references to elements of
47fd5c32 Poul Sander 2024-10-05 08:44 694
  `std::vector<bool>` and `std::bitset<N>`
47fd5c32 Poul Sander 2024-10-05 08:44 695
  (https://github.com/fmtlib/fmt/issues/3567,
47fd5c32 Poul Sander 2024-10-05 08:44 696
  https://github.com/fmtlib/fmt/pull/3570). For example
47fd5c32 Poul Sander 2024-10-05 08:44 697
  ([godbolt](https://godbolt.org/z/zYb79Pvn8)):
47fd5c32 Poul Sander 2024-10-05 08:44 698
47fd5c32 Poul Sander 2024-10-05 08:44 699
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 700
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 701
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 702
47fd5c32 Poul Sander 2024-10-05 08:44 703
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 704
    auto v = std::vector<bool>{true};
47fd5c32 Poul Sander 2024-10-05 08:44 705
    fmt::print("{}", v[0]);
47fd5c32 Poul Sander 2024-10-05 08:44 706
  }
47fd5c32 Poul Sander 2024-10-05 08:44 707
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 708
47fd5c32 Poul Sander 2024-10-05 08:44 709
  Thanks @phprus and @felix642.
47fd5c32 Poul Sander 2024-10-05 08:44 710
47fd5c32 Poul Sander 2024-10-05 08:44 711
- Fixed an ambiguous formatter specialization for containers that look
47fd5c32 Poul Sander 2024-10-05 08:44 712
  like container adaptors such as `boost::flat_set`
47fd5c32 Poul Sander 2024-10-05 08:44 713
  (https://github.com/fmtlib/fmt/issues/3556,
47fd5c32 Poul Sander 2024-10-05 08:44 714
  https://github.com/fmtlib/fmt/pull/3561). Thanks @5chmidti.
47fd5c32 Poul Sander 2024-10-05 08:44 715
47fd5c32 Poul Sander 2024-10-05 08:44 716
- Fixed compilation when formatting durations not convertible from
47fd5c32 Poul Sander 2024-10-05 08:44 717
  `std::chrono::seconds`
47fd5c32 Poul Sander 2024-10-05 08:44 718
  (https://github.com/fmtlib/fmt/pull/3430). Thanks @patlkli.
47fd5c32 Poul Sander 2024-10-05 08:44 719
47fd5c32 Poul Sander 2024-10-05 08:44 720
- Made the `formatter` specialization for `char*` const-correct
47fd5c32 Poul Sander 2024-10-05 08:44 721
  (https://github.com/fmtlib/fmt/pull/3432). Thanks @timsong-cpp.
47fd5c32 Poul Sander 2024-10-05 08:44 722
47fd5c32 Poul Sander 2024-10-05 08:44 723
- Made `{}` and `{:}` handled consistently during compile-time checks
47fd5c32 Poul Sander 2024-10-05 08:44 724
  (https://github.com/fmtlib/fmt/issues/3526).
47fd5c32 Poul Sander 2024-10-05 08:44 725
47fd5c32 Poul Sander 2024-10-05 08:44 726
- Disallowed passing temporaries to `make_format_args` to improve API
47fd5c32 Poul Sander 2024-10-05 08:44 727
  safety by preventing dangling references.
47fd5c32 Poul Sander 2024-10-05 08:44 728
47fd5c32 Poul Sander 2024-10-05 08:44 729
- Improved the compile-time error for unformattable types
47fd5c32 Poul Sander 2024-10-05 08:44 730
  (https://github.com/fmtlib/fmt/pull/3478). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 731
47fd5c32 Poul Sander 2024-10-05 08:44 732
- Improved the floating-point formatter
47fd5c32 Poul Sander 2024-10-05 08:44 733
  (https://github.com/fmtlib/fmt/pull/3448,
47fd5c32 Poul Sander 2024-10-05 08:44 734
  https://github.com/fmtlib/fmt/pull/3450).
47fd5c32 Poul Sander 2024-10-05 08:44 735
  Thanks @florimond-collette.
47fd5c32 Poul Sander 2024-10-05 08:44 736
47fd5c32 Poul Sander 2024-10-05 08:44 737
- Fixed handling of precision for `long double` larger than 64 bits.
47fd5c32 Poul Sander 2024-10-05 08:44 738
  (https://github.com/fmtlib/fmt/issues/3539,
47fd5c32 Poul Sander 2024-10-05 08:44 739
  https://github.com/fmtlib/fmt/issues/3564).
47fd5c32 Poul Sander 2024-10-05 08:44 740
47fd5c32 Poul Sander 2024-10-05 08:44 741
- Made floating-point and chrono tests less platform-dependent
47fd5c32 Poul Sander 2024-10-05 08:44 742
  (https://github.com/fmtlib/fmt/issues/3337,
47fd5c32 Poul Sander 2024-10-05 08:44 743
  https://github.com/fmtlib/fmt/issues/3433,
47fd5c32 Poul Sander 2024-10-05 08:44 744
  https://github.com/fmtlib/fmt/pull/3434). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 745
47fd5c32 Poul Sander 2024-10-05 08:44 746
- Removed the remnants of the Grisu floating-point formatter that has
47fd5c32 Poul Sander 2024-10-05 08:44 747
  been replaced by Dragonbox in earlier versions.
47fd5c32 Poul Sander 2024-10-05 08:44 748
47fd5c32 Poul Sander 2024-10-05 08:44 749
- Added `throw_format_error` to the public API
47fd5c32 Poul Sander 2024-10-05 08:44 750
  (https://github.com/fmtlib/fmt/pull/3551). Thanks @mjerabek.
47fd5c32 Poul Sander 2024-10-05 08:44 751
47fd5c32 Poul Sander 2024-10-05 08:44 752
- Made `FMT_THROW` assert even if assertions are disabled when
47fd5c32 Poul Sander 2024-10-05 08:44 753
  compiling with exceptions disabled
47fd5c32 Poul Sander 2024-10-05 08:44 754
  (https://github.com/fmtlib/fmt/issues/3418,
47fd5c32 Poul Sander 2024-10-05 08:44 755
  https://github.com/fmtlib/fmt/pull/3439). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 756
47fd5c32 Poul Sander 2024-10-05 08:44 757
- Made `format_as` and `std::filesystem::path` formatter work with
47fd5c32 Poul Sander 2024-10-05 08:44 758
  exotic code unit types.
47fd5c32 Poul Sander 2024-10-05 08:44 759
  (https://github.com/fmtlib/fmt/pull/3457,
47fd5c32 Poul Sander 2024-10-05 08:44 760
  https://github.com/fmtlib/fmt/pull/3476). Thanks @gix and @hmbj.
47fd5c32 Poul Sander 2024-10-05 08:44 761
47fd5c32 Poul Sander 2024-10-05 08:44 762
- Added support for the `?` format specifier to
47fd5c32 Poul Sander 2024-10-05 08:44 763
  `std::filesystem::path` and made the default unescaped for
47fd5c32 Poul Sander 2024-10-05 08:44 764
  consistency with strings.
47fd5c32 Poul Sander 2024-10-05 08:44 765
47fd5c32 Poul Sander 2024-10-05 08:44 766
- Deprecated the wide stream overload of `printf`.
47fd5c32 Poul Sander 2024-10-05 08:44 767
47fd5c32 Poul Sander 2024-10-05 08:44 768
- Removed unused `basic_printf_parse_context`.
47fd5c32 Poul Sander 2024-10-05 08:44 769
47fd5c32 Poul Sander 2024-10-05 08:44 770
- Improved RTTI detection used when formatting exceptions
47fd5c32 Poul Sander 2024-10-05 08:44 771
  (https://github.com/fmtlib/fmt/pull/3468). Thanks @danakj.
47fd5c32 Poul Sander 2024-10-05 08:44 772
47fd5c32 Poul Sander 2024-10-05 08:44 773
- Improved compatibility with VxWorks7
47fd5c32 Poul Sander 2024-10-05 08:44 774
  (https://github.com/fmtlib/fmt/pull/3467). Thanks @wenshan1.
47fd5c32 Poul Sander 2024-10-05 08:44 775
47fd5c32 Poul Sander 2024-10-05 08:44 776
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 777
  (https://github.com/fmtlib/fmt/issues/3174,
47fd5c32 Poul Sander 2024-10-05 08:44 778
  https://github.com/fmtlib/fmt/issues/3423,
47fd5c32 Poul Sander 2024-10-05 08:44 779
  https://github.com/fmtlib/fmt/pull/3454,
47fd5c32 Poul Sander 2024-10-05 08:44 780
  https://github.com/fmtlib/fmt/issues/3458,
47fd5c32 Poul Sander 2024-10-05 08:44 781
  https://github.com/fmtlib/fmt/pull/3461,
47fd5c32 Poul Sander 2024-10-05 08:44 782
  https://github.com/fmtlib/fmt/issues/3487,
47fd5c32 Poul Sander 2024-10-05 08:44 783
  https://github.com/fmtlib/fmt/pull/3515).
47fd5c32 Poul Sander 2024-10-05 08:44 784
  Thanks @zencatalyst, @rlalik and @mikecrowe.
47fd5c32 Poul Sander 2024-10-05 08:44 785
47fd5c32 Poul Sander 2024-10-05 08:44 786
- Improved build and CI configurations
47fd5c32 Poul Sander 2024-10-05 08:44 787
  (https://github.com/fmtlib/fmt/issues/3449,
47fd5c32 Poul Sander 2024-10-05 08:44 788
  https://github.com/fmtlib/fmt/pull/3451,
47fd5c32 Poul Sander 2024-10-05 08:44 789
  https://github.com/fmtlib/fmt/pull/3452,
47fd5c32 Poul Sander 2024-10-05 08:44 790
  https://github.com/fmtlib/fmt/pull/3453,
47fd5c32 Poul Sander 2024-10-05 08:44 791
  https://github.com/fmtlib/fmt/pull/3459,
47fd5c32 Poul Sander 2024-10-05 08:44 792
  https://github.com/fmtlib/fmt/issues/3481,
47fd5c32 Poul Sander 2024-10-05 08:44 793
  https://github.com/fmtlib/fmt/pull/3486,
47fd5c32 Poul Sander 2024-10-05 08:44 794
  https://github.com/fmtlib/fmt/issues/3489,
47fd5c32 Poul Sander 2024-10-05 08:44 795
  https://github.com/fmtlib/fmt/pull/3496,
47fd5c32 Poul Sander 2024-10-05 08:44 796
  https://github.com/fmtlib/fmt/issues/3517,
47fd5c32 Poul Sander 2024-10-05 08:44 797
  https://github.com/fmtlib/fmt/pull/3523,
47fd5c32 Poul Sander 2024-10-05 08:44 798
  https://github.com/fmtlib/fmt/pull/3563).
47fd5c32 Poul Sander 2024-10-05 08:44 799
  Thanks @joycebrum, @glebm, @phprus, @petrmanek, @setoye and @abouvier.
47fd5c32 Poul Sander 2024-10-05 08:44 800
47fd5c32 Poul Sander 2024-10-05 08:44 801
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 802
  (https://github.com/fmtlib/fmt/issues/3408,
47fd5c32 Poul Sander 2024-10-05 08:44 803
  https://github.com/fmtlib/fmt/issues/3424,
47fd5c32 Poul Sander 2024-10-05 08:44 804
  https://github.com/fmtlib/fmt/issues/3444,
47fd5c32 Poul Sander 2024-10-05 08:44 805
  https://github.com/fmtlib/fmt/pull/3446,
47fd5c32 Poul Sander 2024-10-05 08:44 806
  https://github.com/fmtlib/fmt/pull/3475,
47fd5c32 Poul Sander 2024-10-05 08:44 807
  https://github.com/fmtlib/fmt/pull/3482,
47fd5c32 Poul Sander 2024-10-05 08:44 808
  https://github.com/fmtlib/fmt/issues/3492,
47fd5c32 Poul Sander 2024-10-05 08:44 809
  https://github.com/fmtlib/fmt/pull/3493,
47fd5c32 Poul Sander 2024-10-05 08:44 810
  https://github.com/fmtlib/fmt/pull/3508,
47fd5c32 Poul Sander 2024-10-05 08:44 811
  https://github.com/fmtlib/fmt/issues/3509,
47fd5c32 Poul Sander 2024-10-05 08:44 812
  https://github.com/fmtlib/fmt/issues/3533,
47fd5c32 Poul Sander 2024-10-05 08:44 813
  https://github.com/fmtlib/fmt/pull/3542,
47fd5c32 Poul Sander 2024-10-05 08:44 814
  https://github.com/fmtlib/fmt/issues/3543,
47fd5c32 Poul Sander 2024-10-05 08:44 815
  https://github.com/fmtlib/fmt/issues/3540,
47fd5c32 Poul Sander 2024-10-05 08:44 816
  https://github.com/fmtlib/fmt/pull/3544,
47fd5c32 Poul Sander 2024-10-05 08:44 817
  https://github.com/fmtlib/fmt/issues/3548,
47fd5c32 Poul Sander 2024-10-05 08:44 818
  https://github.com/fmtlib/fmt/pull/3549,
47fd5c32 Poul Sander 2024-10-05 08:44 819
  https://github.com/fmtlib/fmt/pull/3550,
47fd5c32 Poul Sander 2024-10-05 08:44 820
  https://github.com/fmtlib/fmt/pull/3552).
47fd5c32 Poul Sander 2024-10-05 08:44 821
  Thanks @adesitter, @hmbj, @Minty-Meeo, @phprus, @TobiSchluter,
47fd5c32 Poul Sander 2024-10-05 08:44 822
  @kieranclancy, @alexeedm, @jurihock, @Ozomahtli and @razaqq.
47fd5c32 Poul Sander 2024-10-05 08:44 823
47fd5c32 Poul Sander 2024-10-05 08:44 824
# 10.0.0 - 2023-05-09
47fd5c32 Poul Sander 2024-10-05 08:44 825
47fd5c32 Poul Sander 2024-10-05 08:44 826
- Replaced Grisu with a new floating-point formatting algorithm for
47fd5c32 Poul Sander 2024-10-05 08:44 827
  given precision (https://github.com/fmtlib/fmt/issues/3262,
47fd5c32 Poul Sander 2024-10-05 08:44 828
  https://github.com/fmtlib/fmt/issues/2750,
47fd5c32 Poul Sander 2024-10-05 08:44 829
  https://github.com/fmtlib/fmt/pull/3269,
47fd5c32 Poul Sander 2024-10-05 08:44 830
  https://github.com/fmtlib/fmt/pull/3276). The new algorithm
47fd5c32 Poul Sander 2024-10-05 08:44 831
  is based on Dragonbox already used for the shortest representation
47fd5c32 Poul Sander 2024-10-05 08:44 832
  and gives substantial performance improvement:
47fd5c32 Poul Sander 2024-10-05 08:44 833
47fd5c32 Poul Sander 2024-10-05 08:44 834
  ![](https://user-images.githubusercontent.com/33922675/211956670-84891a09-6867-47d9-82fc-3230da7abe0f.png)
47fd5c32 Poul Sander 2024-10-05 08:44 835
47fd5c32 Poul Sander 2024-10-05 08:44 836
  -   Red: new algorithm
47fd5c32 Poul Sander 2024-10-05 08:44 837
  -   Green: new algorithm with `FMT_USE_FULL_CACHE_DRAGONBOX` defined
47fd5c32 Poul Sander 2024-10-05 08:44 838
      to 1
47fd5c32 Poul Sander 2024-10-05 08:44 839
  -   Blue: old algorithm
47fd5c32 Poul Sander 2024-10-05 08:44 840
47fd5c32 Poul Sander 2024-10-05 08:44 841
  Thanks @jk-jeon.
47fd5c32 Poul Sander 2024-10-05 08:44 842
47fd5c32 Poul Sander 2024-10-05 08:44 843
- Replaced `snprintf`-based hex float formatter with an internal
47fd5c32 Poul Sander 2024-10-05 08:44 844
  implementation (https://github.com/fmtlib/fmt/pull/3179,
47fd5c32 Poul Sander 2024-10-05 08:44 845
  https://github.com/fmtlib/fmt/pull/3203). This removes the
47fd5c32 Poul Sander 2024-10-05 08:44 846
  last usage of `s(n)printf` in {fmt}. Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 847
47fd5c32 Poul Sander 2024-10-05 08:44 848
- Fixed alignment of floating-point numbers with localization
47fd5c32 Poul Sander 2024-10-05 08:44 849
  (https://github.com/fmtlib/fmt/issues/3263,
47fd5c32 Poul Sander 2024-10-05 08:44 850
  https://github.com/fmtlib/fmt/pull/3272). Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 851
47fd5c32 Poul Sander 2024-10-05 08:44 852
- Made handling of `#` consistent with `std::format`.
47fd5c32 Poul Sander 2024-10-05 08:44 853
47fd5c32 Poul Sander 2024-10-05 08:44 854
- Improved C++20 module support
47fd5c32 Poul Sander 2024-10-05 08:44 855
  (https://github.com/fmtlib/fmt/pull/3134,
47fd5c32 Poul Sander 2024-10-05 08:44 856
  https://github.com/fmtlib/fmt/pull/3254,
47fd5c32 Poul Sander 2024-10-05 08:44 857
  https://github.com/fmtlib/fmt/pull/3386,
47fd5c32 Poul Sander 2024-10-05 08:44 858
  https://github.com/fmtlib/fmt/pull/3387,
47fd5c32 Poul Sander 2024-10-05 08:44 859
  https://github.com/fmtlib/fmt/pull/3388,
47fd5c32 Poul Sander 2024-10-05 08:44 860
  https://github.com/fmtlib/fmt/pull/3392,
47fd5c32 Poul Sander 2024-10-05 08:44 861
  https://github.com/fmtlib/fmt/pull/3397,
47fd5c32 Poul Sander 2024-10-05 08:44 862
  https://github.com/fmtlib/fmt/pull/3399,
47fd5c32 Poul Sander 2024-10-05 08:44 863
  https://github.com/fmtlib/fmt/pull/3400).
47fd5c32 Poul Sander 2024-10-05 08:44 864
  Thanks @laitingsheng, @Orvid and @DanielaE.
47fd5c32 Poul Sander 2024-10-05 08:44 865
  
47fd5c32 Poul Sander 2024-10-05 08:44 866
- Switched to the [modules CMake library](https://github.com/vitaut/modules)
47fd5c32 Poul Sander 2024-10-05 08:44 867
  which allows building {fmt} as a C++20 module with clang:
47fd5c32 Poul Sander 2024-10-05 08:44 868
47fd5c32 Poul Sander 2024-10-05 08:44 869
      CXX=clang++ cmake -DFMT_MODULE=ON .
47fd5c32 Poul Sander 2024-10-05 08:44 870
      make
47fd5c32 Poul Sander 2024-10-05 08:44 871
47fd5c32 Poul Sander 2024-10-05 08:44 872
- Made `format_as` work with any user-defined type and not just enums.
47fd5c32 Poul Sander 2024-10-05 08:44 873
  For example ([godbolt](https://godbolt.org/z/b7rqhq5Kh)):
47fd5c32 Poul Sander 2024-10-05 08:44 874
47fd5c32 Poul Sander 2024-10-05 08:44 875
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 876
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 877
47fd5c32 Poul Sander 2024-10-05 08:44 878
  struct floaty_mc_floatface {
47fd5c32 Poul Sander 2024-10-05 08:44 879
    double value;
47fd5c32 Poul Sander 2024-10-05 08:44 880
  };
47fd5c32 Poul Sander 2024-10-05 08:44 881
47fd5c32 Poul Sander 2024-10-05 08:44 882
  auto format_as(floaty_mc_floatface f) { return f.value; }
47fd5c32 Poul Sander 2024-10-05 08:44 883
47fd5c32 Poul Sander 2024-10-05 08:44 884
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 885
    fmt::print("{:8}\n", floaty_mc_floatface{0.42}); // prints "    0.42"
47fd5c32 Poul Sander 2024-10-05 08:44 886
  }
47fd5c32 Poul Sander 2024-10-05 08:44 887
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 888
47fd5c32 Poul Sander 2024-10-05 08:44 889
- Removed deprecated implicit conversions for enums and conversions to
47fd5c32 Poul Sander 2024-10-05 08:44 890
  primitive types for compatibility with `std::format` and to prevent
47fd5c32 Poul Sander 2024-10-05 08:44 891
  potential ODR violations. Use `format_as` instead.
47fd5c32 Poul Sander 2024-10-05 08:44 892
47fd5c32 Poul Sander 2024-10-05 08:44 893
- Added support for fill, align and width to the time point formatter
47fd5c32 Poul Sander 2024-10-05 08:44 894
  (https://github.com/fmtlib/fmt/issues/3237,
47fd5c32 Poul Sander 2024-10-05 08:44 895
  https://github.com/fmtlib/fmt/pull/3260,
47fd5c32 Poul Sander 2024-10-05 08:44 896
  https://github.com/fmtlib/fmt/pull/3275). For example
47fd5c32 Poul Sander 2024-10-05 08:44 897
  ([godbolt](https://godbolt.org/z/rKP6MGz6c)):
47fd5c32 Poul Sander 2024-10-05 08:44 898
47fd5c32 Poul Sander 2024-10-05 08:44 899
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 900
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 901
47fd5c32 Poul Sander 2024-10-05 08:44 902
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 903
    // prints "    2023"
47fd5c32 Poul Sander 2024-10-05 08:44 904
    fmt::print("{:>8%Y}\n", std::chrono::system_clock::now());
47fd5c32 Poul Sander 2024-10-05 08:44 905
  }
47fd5c32 Poul Sander 2024-10-05 08:44 906
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 907
47fd5c32 Poul Sander 2024-10-05 08:44 908
  Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 909
47fd5c32 Poul Sander 2024-10-05 08:44 910
- Implemented formatting of subseconds
47fd5c32 Poul Sander 2024-10-05 08:44 911
  (https://github.com/fmtlib/fmt/issues/2207,
47fd5c32 Poul Sander 2024-10-05 08:44 912
  https://github.com/fmtlib/fmt/issues/3117,
47fd5c32 Poul Sander 2024-10-05 08:44 913
  https://github.com/fmtlib/fmt/pull/3115,
47fd5c32 Poul Sander 2024-10-05 08:44 914
  https://github.com/fmtlib/fmt/pull/3143,
47fd5c32 Poul Sander 2024-10-05 08:44 915
  https://github.com/fmtlib/fmt/pull/3144,
47fd5c32 Poul Sander 2024-10-05 08:44 916
  https://github.com/fmtlib/fmt/pull/3349). For example
47fd5c32 Poul Sander 2024-10-05 08:44 917
  ([godbolt](https://godbolt.org/z/45738oGEo)):
47fd5c32 Poul Sander 2024-10-05 08:44 918
47fd5c32 Poul Sander 2024-10-05 08:44 919
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 920
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 921
47fd5c32 Poul Sander 2024-10-05 08:44 922
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 923
    // prints 01.234567
47fd5c32 Poul Sander 2024-10-05 08:44 924
    fmt::print("{:%S}\n", std::chrono::microseconds(1234567));
47fd5c32 Poul Sander 2024-10-05 08:44 925
  }
47fd5c32 Poul Sander 2024-10-05 08:44 926
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 927
47fd5c32 Poul Sander 2024-10-05 08:44 928
  Thanks @patrickroocks @phprus and @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 929
47fd5c32 Poul Sander 2024-10-05 08:44 930
- Added precision support to `%S`
47fd5c32 Poul Sander 2024-10-05 08:44 931
  (https://github.com/fmtlib/fmt/pull/3148). Thanks @SappyJoy
47fd5c32 Poul Sander 2024-10-05 08:44 932
47fd5c32 Poul Sander 2024-10-05 08:44 933
- Added support for `std::utc_time`
47fd5c32 Poul Sander 2024-10-05 08:44 934
  (https://github.com/fmtlib/fmt/issues/3098,
47fd5c32 Poul Sander 2024-10-05 08:44 935
  https://github.com/fmtlib/fmt/pull/3110). Thanks @patrickroocks.
47fd5c32 Poul Sander 2024-10-05 08:44 936
47fd5c32 Poul Sander 2024-10-05 08:44 937
- Switched formatting of `std::chrono::system_clock` from local time
47fd5c32 Poul Sander 2024-10-05 08:44 938
  to UTC for compatibility with the standard
47fd5c32 Poul Sander 2024-10-05 08:44 939
  (https://github.com/fmtlib/fmt/issues/3199,
47fd5c32 Poul Sander 2024-10-05 08:44 940
  https://github.com/fmtlib/fmt/pull/3230). Thanks @ned14.
47fd5c32 Poul Sander 2024-10-05 08:44 941
47fd5c32 Poul Sander 2024-10-05 08:44 942
- Added support for `%Ez` and `%Oz` to chrono formatters.
47fd5c32 Poul Sander 2024-10-05 08:44 943
  (https://github.com/fmtlib/fmt/issues/3220,
47fd5c32 Poul Sander 2024-10-05 08:44 944
  https://github.com/fmtlib/fmt/pull/3222). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 945
47fd5c32 Poul Sander 2024-10-05 08:44 946
- Improved validation of format specifiers for `std::chrono::duration`
47fd5c32 Poul Sander 2024-10-05 08:44 947
  (https://github.com/fmtlib/fmt/issues/3219,
47fd5c32 Poul Sander 2024-10-05 08:44 948
  https://github.com/fmtlib/fmt/pull/3232). Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 949
47fd5c32 Poul Sander 2024-10-05 08:44 950
- Fixed formatting of time points before the epoch
47fd5c32 Poul Sander 2024-10-05 08:44 951
  (https://github.com/fmtlib/fmt/issues/3117,
47fd5c32 Poul Sander 2024-10-05 08:44 952
  https://github.com/fmtlib/fmt/pull/3261). For example
47fd5c32 Poul Sander 2024-10-05 08:44 953
  ([godbolt](https://godbolt.org/z/f7bcznb3W)):
47fd5c32 Poul Sander 2024-10-05 08:44 954
47fd5c32 Poul Sander 2024-10-05 08:44 955
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 956
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 957
47fd5c32 Poul Sander 2024-10-05 08:44 958
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 959
    auto t = std::chrono::system_clock::from_time_t(0) -
47fd5c32 Poul Sander 2024-10-05 08:44 960
             std::chrono::milliseconds(250);
47fd5c32 Poul Sander 2024-10-05 08:44 961
    fmt::print("{:%S}\n", t); // prints 59.750000000
47fd5c32 Poul Sander 2024-10-05 08:44 962
  }
47fd5c32 Poul Sander 2024-10-05 08:44 963
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 964
47fd5c32 Poul Sander 2024-10-05 08:44 965
  Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 966
47fd5c32 Poul Sander 2024-10-05 08:44 967
- Experimental: implemented glibc extension for padding seconds,
47fd5c32 Poul Sander 2024-10-05 08:44 968
  minutes and hours
47fd5c32 Poul Sander 2024-10-05 08:44 969
  (https://github.com/fmtlib/fmt/issues/2959,
47fd5c32 Poul Sander 2024-10-05 08:44 970
  https://github.com/fmtlib/fmt/pull/3271). Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 971
47fd5c32 Poul Sander 2024-10-05 08:44 972
- Added a formatter for `std::exception`
47fd5c32 Poul Sander 2024-10-05 08:44 973
  (https://github.com/fmtlib/fmt/issues/2977,
47fd5c32 Poul Sander 2024-10-05 08:44 974
  https://github.com/fmtlib/fmt/issues/3012,
47fd5c32 Poul Sander 2024-10-05 08:44 975
  https://github.com/fmtlib/fmt/pull/3062,
47fd5c32 Poul Sander 2024-10-05 08:44 976
  https://github.com/fmtlib/fmt/pull/3076,
47fd5c32 Poul Sander 2024-10-05 08:44 977
  https://github.com/fmtlib/fmt/pull/3119). For example
47fd5c32 Poul Sander 2024-10-05 08:44 978
  ([godbolt](https://godbolt.org/z/8xoWGs9e4)):
47fd5c32 Poul Sander 2024-10-05 08:44 979
47fd5c32 Poul Sander 2024-10-05 08:44 980
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 981
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 982
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 983
47fd5c32 Poul Sander 2024-10-05 08:44 984
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 985
    try {
47fd5c32 Poul Sander 2024-10-05 08:44 986
      std::vector<bool>().at(0);
47fd5c32 Poul Sander 2024-10-05 08:44 987
    } catch(const std::exception& e) {
47fd5c32 Poul Sander 2024-10-05 08:44 988
      fmt::print("{}", e);
47fd5c32 Poul Sander 2024-10-05 08:44 989
    }
47fd5c32 Poul Sander 2024-10-05 08:44 990
  }
47fd5c32 Poul Sander 2024-10-05 08:44 991
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 992
47fd5c32 Poul Sander 2024-10-05 08:44 993
  prints:
47fd5c32 Poul Sander 2024-10-05 08:44 994
47fd5c32 Poul Sander 2024-10-05 08:44 995
      vector<bool>::_M_range_check: __n (which is 0) >= this->size() (which is 0)
47fd5c32 Poul Sander 2024-10-05 08:44 996
47fd5c32 Poul Sander 2024-10-05 08:44 997
  on libstdc++. Thanks @zach2good and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 998
47fd5c32 Poul Sander 2024-10-05 08:44 999
- Moved `std::error_code` formatter from `fmt/os.h` to `fmt/std.h`.
47fd5c32 Poul Sander 2024-10-05 08:44 1000
  (https://github.com/fmtlib/fmt/pull/3125). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1001
47fd5c32 Poul Sander 2024-10-05 08:44 1002
- Added formatters for standard container adapters:
47fd5c32 Poul Sander 2024-10-05 08:44 1003
  `std::priority_queue`, `std::queue` and `std::stack`
47fd5c32 Poul Sander 2024-10-05 08:44 1004
  (https://github.com/fmtlib/fmt/issues/3215,
47fd5c32 Poul Sander 2024-10-05 08:44 1005
  https://github.com/fmtlib/fmt/pull/3279). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1006
  ([godbolt](https://godbolt.org/z/74h1xY9qK)):
47fd5c32 Poul Sander 2024-10-05 08:44 1007
47fd5c32 Poul Sander 2024-10-05 08:44 1008
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1009
  #include <fmt/ranges.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1010
  #include <stack>
47fd5c32 Poul Sander 2024-10-05 08:44 1011
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 1012
47fd5c32 Poul Sander 2024-10-05 08:44 1013
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1014
    auto s = std::stack<bool, std::vector<bool>>();
47fd5c32 Poul Sander 2024-10-05 08:44 1015
    for (auto b: {true, false, true}) s.push(b);
47fd5c32 Poul Sander 2024-10-05 08:44 1016
    fmt::print("{}\n", s); // prints [true, false, true]
47fd5c32 Poul Sander 2024-10-05 08:44 1017
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1018
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1019
47fd5c32 Poul Sander 2024-10-05 08:44 1020
  Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 1021
47fd5c32 Poul Sander 2024-10-05 08:44 1022
- Added a formatter for `std::optional` to `fmt/std.h`
47fd5c32 Poul Sander 2024-10-05 08:44 1023
  (https://github.com/fmtlib/fmt/issues/1367,
47fd5c32 Poul Sander 2024-10-05 08:44 1024
  https://github.com/fmtlib/fmt/pull/3303).
47fd5c32 Poul Sander 2024-10-05 08:44 1025
  Thanks @tom-huntington.
47fd5c32 Poul Sander 2024-10-05 08:44 1026
47fd5c32 Poul Sander 2024-10-05 08:44 1027
- Fixed formatting of valueless by exception variants
47fd5c32 Poul Sander 2024-10-05 08:44 1028
  (https://github.com/fmtlib/fmt/pull/3347). Thanks @TheOmegaCarrot.
47fd5c32 Poul Sander 2024-10-05 08:44 1029
47fd5c32 Poul Sander 2024-10-05 08:44 1030
- Made `fmt::ptr` accept `unique_ptr` with a custom deleter
47fd5c32 Poul Sander 2024-10-05 08:44 1031
  (https://github.com/fmtlib/fmt/pull/3177). Thanks @hmbj.
47fd5c32 Poul Sander 2024-10-05 08:44 1032
47fd5c32 Poul Sander 2024-10-05 08:44 1033
- Fixed formatting of noncopyable ranges and nested ranges of chars
47fd5c32 Poul Sander 2024-10-05 08:44 1034
  (https://github.com/fmtlib/fmt/pull/3158
47fd5c32 Poul Sander 2024-10-05 08:44 1035
  https://github.com/fmtlib/fmt/issues/3286,
47fd5c32 Poul Sander 2024-10-05 08:44 1036
  https://github.com/fmtlib/fmt/pull/3290). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1037
47fd5c32 Poul Sander 2024-10-05 08:44 1038
- Fixed issues with formatting of paths and ranges of paths
47fd5c32 Poul Sander 2024-10-05 08:44 1039
  (https://github.com/fmtlib/fmt/issues/3319,
47fd5c32 Poul Sander 2024-10-05 08:44 1040
  https://github.com/fmtlib/fmt/pull/3321
47fd5c32 Poul Sander 2024-10-05 08:44 1041
  https://github.com/fmtlib/fmt/issues/3322). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1042
47fd5c32 Poul Sander 2024-10-05 08:44 1043
- Improved handling of invalid Unicode in paths.
47fd5c32 Poul Sander 2024-10-05 08:44 1044
47fd5c32 Poul Sander 2024-10-05 08:44 1045
- Enabled compile-time checks on Apple clang 14 and later
47fd5c32 Poul Sander 2024-10-05 08:44 1046
  (https://github.com/fmtlib/fmt/pull/3331). Thanks @cloyce.
47fd5c32 Poul Sander 2024-10-05 08:44 1047
47fd5c32 Poul Sander 2024-10-05 08:44 1048
- Improved compile-time checks of named arguments
47fd5c32 Poul Sander 2024-10-05 08:44 1049
  (https://github.com/fmtlib/fmt/issues/3105,
47fd5c32 Poul Sander 2024-10-05 08:44 1050
  https://github.com/fmtlib/fmt/pull/3214). Thanks @rbrich.
47fd5c32 Poul Sander 2024-10-05 08:44 1051
47fd5c32 Poul Sander 2024-10-05 08:44 1052
- Fixed formatting when both alignment and `0` are given
47fd5c32 Poul Sander 2024-10-05 08:44 1053
  (https://github.com/fmtlib/fmt/issues/3236,
47fd5c32 Poul Sander 2024-10-05 08:44 1054
  https://github.com/fmtlib/fmt/pull/3248). Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 1055
47fd5c32 Poul Sander 2024-10-05 08:44 1056
- Improved Unicode support in the experimental file API on Windows
47fd5c32 Poul Sander 2024-10-05 08:44 1057
  (https://github.com/fmtlib/fmt/issues/3234,
47fd5c32 Poul Sander 2024-10-05 08:44 1058
  https://github.com/fmtlib/fmt/pull/3293). Thanks @Fros1er.
47fd5c32 Poul Sander 2024-10-05 08:44 1059
47fd5c32 Poul Sander 2024-10-05 08:44 1060
- Unified UTF transcoding
47fd5c32 Poul Sander 2024-10-05 08:44 1061
  (https://github.com/fmtlib/fmt/pull/3416). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1062
47fd5c32 Poul Sander 2024-10-05 08:44 1063
- Added support for UTF-8 digit separators via an experimental locale
47fd5c32 Poul Sander 2024-10-05 08:44 1064
  facet (https://github.com/fmtlib/fmt/issues/1861). For
47fd5c32 Poul Sander 2024-10-05 08:44 1065
  example ([godbolt](https://godbolt.org/z/f7bcznb3W)):
47fd5c32 Poul Sander 2024-10-05 08:44 1066
47fd5c32 Poul Sander 2024-10-05 08:44 1067
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1068
  auto loc = std::locale(
47fd5c32 Poul Sander 2024-10-05 08:44 1069
    std::locale(), new fmt::format_facet<std::locale>("’"));
47fd5c32 Poul Sander 2024-10-05 08:44 1070
  auto s = fmt::format(loc, "{:L}", 1000);
47fd5c32 Poul Sander 2024-10-05 08:44 1071
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1072
47fd5c32 Poul Sander 2024-10-05 08:44 1073
  where `’` is U+2019 used as a digit separator in the de_CH locale.
47fd5c32 Poul Sander 2024-10-05 08:44 1074
47fd5c32 Poul Sander 2024-10-05 08:44 1075
- Added an overload of `formatted_size` that takes a locale
47fd5c32 Poul Sander 2024-10-05 08:44 1076
  (https://github.com/fmtlib/fmt/issues/3084,
47fd5c32 Poul Sander 2024-10-05 08:44 1077
  https://github.com/fmtlib/fmt/pull/3087). Thanks @gerboengels.
47fd5c32 Poul Sander 2024-10-05 08:44 1078
47fd5c32 Poul Sander 2024-10-05 08:44 1079
- Removed the deprecated `FMT_DEPRECATED_OSTREAM`.
47fd5c32 Poul Sander 2024-10-05 08:44 1080
47fd5c32 Poul Sander 2024-10-05 08:44 1081
- Fixed a UB when using a null `std::string_view` with
47fd5c32 Poul Sander 2024-10-05 08:44 1082
  `fmt::to_string` or format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 1083
  (https://github.com/fmtlib/fmt/issues/3241,
47fd5c32 Poul Sander 2024-10-05 08:44 1084
  https://github.com/fmtlib/fmt/pull/3244). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1085
47fd5c32 Poul Sander 2024-10-05 08:44 1086
- Added `starts_with` to the fallback `string_view` implementation
47fd5c32 Poul Sander 2024-10-05 08:44 1087
  (https://github.com/fmtlib/fmt/pull/3080). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1088
47fd5c32 Poul Sander 2024-10-05 08:44 1089
- Added `fmt::basic_format_string::get()` for compatibility with
47fd5c32 Poul Sander 2024-10-05 08:44 1090
  `basic_format_string`
47fd5c32 Poul Sander 2024-10-05 08:44 1091
  (https://github.com/fmtlib/fmt/pull/3111). Thanks @huangqinjin.
47fd5c32 Poul Sander 2024-10-05 08:44 1092
47fd5c32 Poul Sander 2024-10-05 08:44 1093
- Added `println` for compatibility with C++23
47fd5c32 Poul Sander 2024-10-05 08:44 1094
  (https://github.com/fmtlib/fmt/pull/3267). Thanks @ShawnZhong.
47fd5c32 Poul Sander 2024-10-05 08:44 1095
47fd5c32 Poul Sander 2024-10-05 08:44 1096
- Renamed the `FMT_EXPORT` macro for shared library usage to
47fd5c32 Poul Sander 2024-10-05 08:44 1097
  `FMT_LIB_EXPORT`.
47fd5c32 Poul Sander 2024-10-05 08:44 1098
47fd5c32 Poul Sander 2024-10-05 08:44 1099
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 1100
  (https://github.com/fmtlib/fmt/issues/3108,
47fd5c32 Poul Sander 2024-10-05 08:44 1101
  https://github.com/fmtlib/fmt/issues/3169,
47fd5c32 Poul Sander 2024-10-05 08:44 1102
  https://github.com/fmtlib/fmt/pull/3243).
47fd5c32 Poul Sander 2024-10-05 08:44 1103
  https://github.com/fmtlib/fmt/pull/3404,
47fd5c32 Poul Sander 2024-10-05 08:44 1104
  https://github.com/fmtlib/fmt/pull/4002).
47fd5c32 Poul Sander 2024-10-05 08:44 1105
  Thanks @Cleroth, @Vertexwahn and @yujincheng08.
47fd5c32 Poul Sander 2024-10-05 08:44 1106
47fd5c32 Poul Sander 2024-10-05 08:44 1107
- Improved build configuration and tests
47fd5c32 Poul Sander 2024-10-05 08:44 1108
  (https://github.com/fmtlib/fmt/pull/3118,
47fd5c32 Poul Sander 2024-10-05 08:44 1109
  https://github.com/fmtlib/fmt/pull/3120,
47fd5c32 Poul Sander 2024-10-05 08:44 1110
  https://github.com/fmtlib/fmt/pull/3188,
47fd5c32 Poul Sander 2024-10-05 08:44 1111
  https://github.com/fmtlib/fmt/issues/3189,
47fd5c32 Poul Sander 2024-10-05 08:44 1112
  https://github.com/fmtlib/fmt/pull/3198,
47fd5c32 Poul Sander 2024-10-05 08:44 1113
  https://github.com/fmtlib/fmt/pull/3205,
47fd5c32 Poul Sander 2024-10-05 08:44 1114
  https://github.com/fmtlib/fmt/pull/3207,
47fd5c32 Poul Sander 2024-10-05 08:44 1115
  https://github.com/fmtlib/fmt/pull/3210,
47fd5c32 Poul Sander 2024-10-05 08:44 1116
  https://github.com/fmtlib/fmt/pull/3240,
47fd5c32 Poul Sander 2024-10-05 08:44 1117
  https://github.com/fmtlib/fmt/pull/3256,
47fd5c32 Poul Sander 2024-10-05 08:44 1118
  https://github.com/fmtlib/fmt/pull/3264,
47fd5c32 Poul Sander 2024-10-05 08:44 1119
  https://github.com/fmtlib/fmt/issues/3299,
47fd5c32 Poul Sander 2024-10-05 08:44 1120
  https://github.com/fmtlib/fmt/pull/3302,
47fd5c32 Poul Sander 2024-10-05 08:44 1121
  https://github.com/fmtlib/fmt/pull/3312,
47fd5c32 Poul Sander 2024-10-05 08:44 1122
  https://github.com/fmtlib/fmt/issues/3317,
47fd5c32 Poul Sander 2024-10-05 08:44 1123
  https://github.com/fmtlib/fmt/pull/3328,
47fd5c32 Poul Sander 2024-10-05 08:44 1124
  https://github.com/fmtlib/fmt/pull/3333,
47fd5c32 Poul Sander 2024-10-05 08:44 1125
  https://github.com/fmtlib/fmt/pull/3369,
47fd5c32 Poul Sander 2024-10-05 08:44 1126
  https://github.com/fmtlib/fmt/issues/3373,
47fd5c32 Poul Sander 2024-10-05 08:44 1127
  https://github.com/fmtlib/fmt/pull/3395,
47fd5c32 Poul Sander 2024-10-05 08:44 1128
  https://github.com/fmtlib/fmt/pull/3406,
47fd5c32 Poul Sander 2024-10-05 08:44 1129
  https://github.com/fmtlib/fmt/pull/3411).
47fd5c32 Poul Sander 2024-10-05 08:44 1130
  Thanks @dimztimz, @phprus, @DavidKorczynski, @ChrisThrasher,
47fd5c32 Poul Sander 2024-10-05 08:44 1131
  @FrancoisCarouge, @kennyweiss, @luzpaz, @codeinred, @Mixaill, @joycebrum,
47fd5c32 Poul Sander 2024-10-05 08:44 1132
  @kevinhwang and @Vertexwahn.
47fd5c32 Poul Sander 2024-10-05 08:44 1133
47fd5c32 Poul Sander 2024-10-05 08:44 1134
- Fixed a regression in handling empty format specifiers after a colon
47fd5c32 Poul Sander 2024-10-05 08:44 1135
  (`{:}`) (https://github.com/fmtlib/fmt/pull/3086). Thanks @oxidase.
47fd5c32 Poul Sander 2024-10-05 08:44 1136
47fd5c32 Poul Sander 2024-10-05 08:44 1137
- Worked around a broken implementation of
47fd5c32 Poul Sander 2024-10-05 08:44 1138
  `std::is_constant_evaluated` in some versions of libstdc++ on clang
47fd5c32 Poul Sander 2024-10-05 08:44 1139
  (https://github.com/fmtlib/fmt/issues/3247,
47fd5c32 Poul Sander 2024-10-05 08:44 1140
  https://github.com/fmtlib/fmt/pull/3281). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1141
47fd5c32 Poul Sander 2024-10-05 08:44 1142
- Fixed formatting of volatile variables
47fd5c32 Poul Sander 2024-10-05 08:44 1143
  (https://github.com/fmtlib/fmt/pull/3068).
47fd5c32 Poul Sander 2024-10-05 08:44 1144
47fd5c32 Poul Sander 2024-10-05 08:44 1145
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 1146
  (https://github.com/fmtlib/fmt/pull/3057,
47fd5c32 Poul Sander 2024-10-05 08:44 1147
  https://github.com/fmtlib/fmt/pull/3066,
47fd5c32 Poul Sander 2024-10-05 08:44 1148
  https://github.com/fmtlib/fmt/pull/3072,
47fd5c32 Poul Sander 2024-10-05 08:44 1149
  https://github.com/fmtlib/fmt/pull/3082,
47fd5c32 Poul Sander 2024-10-05 08:44 1150
  https://github.com/fmtlib/fmt/pull/3091,
47fd5c32 Poul Sander 2024-10-05 08:44 1151
  https://github.com/fmtlib/fmt/issues/3092,
47fd5c32 Poul Sander 2024-10-05 08:44 1152
  https://github.com/fmtlib/fmt/pull/3093,
47fd5c32 Poul Sander 2024-10-05 08:44 1153
  https://github.com/fmtlib/fmt/pull/3095,
47fd5c32 Poul Sander 2024-10-05 08:44 1154
  https://github.com/fmtlib/fmt/issues/3096,
47fd5c32 Poul Sander 2024-10-05 08:44 1155
  https://github.com/fmtlib/fmt/pull/3097,
47fd5c32 Poul Sander 2024-10-05 08:44 1156
  https://github.com/fmtlib/fmt/issues/3128,
47fd5c32 Poul Sander 2024-10-05 08:44 1157
  https://github.com/fmtlib/fmt/pull/3129,
47fd5c32 Poul Sander 2024-10-05 08:44 1158
  https://github.com/fmtlib/fmt/pull/3137,
47fd5c32 Poul Sander 2024-10-05 08:44 1159
  https://github.com/fmtlib/fmt/pull/3139,
47fd5c32 Poul Sander 2024-10-05 08:44 1160
  https://github.com/fmtlib/fmt/issues/3140,
47fd5c32 Poul Sander 2024-10-05 08:44 1161
  https://github.com/fmtlib/fmt/pull/3142,
47fd5c32 Poul Sander 2024-10-05 08:44 1162
  https://github.com/fmtlib/fmt/issues/3149,
47fd5c32 Poul Sander 2024-10-05 08:44 1163
  https://github.com/fmtlib/fmt/pull/3150,
47fd5c32 Poul Sander 2024-10-05 08:44 1164
  https://github.com/fmtlib/fmt/issues/3154,
47fd5c32 Poul Sander 2024-10-05 08:44 1165
  https://github.com/fmtlib/fmt/issues/3163,
47fd5c32 Poul Sander 2024-10-05 08:44 1166
  https://github.com/fmtlib/fmt/issues/3178,
47fd5c32 Poul Sander 2024-10-05 08:44 1167
  https://github.com/fmtlib/fmt/pull/3184,
47fd5c32 Poul Sander 2024-10-05 08:44 1168
  https://github.com/fmtlib/fmt/pull/3196,
47fd5c32 Poul Sander 2024-10-05 08:44 1169
  https://github.com/fmtlib/fmt/issues/3204,
47fd5c32 Poul Sander 2024-10-05 08:44 1170
  https://github.com/fmtlib/fmt/pull/3206,
47fd5c32 Poul Sander 2024-10-05 08:44 1171
  https://github.com/fmtlib/fmt/pull/3208,
47fd5c32 Poul Sander 2024-10-05 08:44 1172
  https://github.com/fmtlib/fmt/issues/3213,
47fd5c32 Poul Sander 2024-10-05 08:44 1173
  https://github.com/fmtlib/fmt/pull/3216,
47fd5c32 Poul Sander 2024-10-05 08:44 1174
  https://github.com/fmtlib/fmt/issues/3224,
47fd5c32 Poul Sander 2024-10-05 08:44 1175
  https://github.com/fmtlib/fmt/issues/3226,
47fd5c32 Poul Sander 2024-10-05 08:44 1176
  https://github.com/fmtlib/fmt/issues/3228,
47fd5c32 Poul Sander 2024-10-05 08:44 1177
  https://github.com/fmtlib/fmt/pull/3229,
47fd5c32 Poul Sander 2024-10-05 08:44 1178
  https://github.com/fmtlib/fmt/pull/3259,
47fd5c32 Poul Sander 2024-10-05 08:44 1179
  https://github.com/fmtlib/fmt/issues/3274,
47fd5c32 Poul Sander 2024-10-05 08:44 1180
  https://github.com/fmtlib/fmt/issues/3287,
47fd5c32 Poul Sander 2024-10-05 08:44 1181
  https://github.com/fmtlib/fmt/pull/3288,
47fd5c32 Poul Sander 2024-10-05 08:44 1182
  https://github.com/fmtlib/fmt/issues/3292,
47fd5c32 Poul Sander 2024-10-05 08:44 1183
  https://github.com/fmtlib/fmt/pull/3295,
47fd5c32 Poul Sander 2024-10-05 08:44 1184
  https://github.com/fmtlib/fmt/pull/3296,
47fd5c32 Poul Sander 2024-10-05 08:44 1185
  https://github.com/fmtlib/fmt/issues/3298,
47fd5c32 Poul Sander 2024-10-05 08:44 1186
  https://github.com/fmtlib/fmt/issues/3325,
47fd5c32 Poul Sander 2024-10-05 08:44 1187
  https://github.com/fmtlib/fmt/pull/3326,
47fd5c32 Poul Sander 2024-10-05 08:44 1188
  https://github.com/fmtlib/fmt/issues/3334,
47fd5c32 Poul Sander 2024-10-05 08:44 1189
  https://github.com/fmtlib/fmt/issues/3342,
47fd5c32 Poul Sander 2024-10-05 08:44 1190
  https://github.com/fmtlib/fmt/pull/3343,
47fd5c32 Poul Sander 2024-10-05 08:44 1191
  https://github.com/fmtlib/fmt/issues/3351,
47fd5c32 Poul Sander 2024-10-05 08:44 1192
  https://github.com/fmtlib/fmt/pull/3352,
47fd5c32 Poul Sander 2024-10-05 08:44 1193
  https://github.com/fmtlib/fmt/pull/3362,
47fd5c32 Poul Sander 2024-10-05 08:44 1194
  https://github.com/fmtlib/fmt/issues/3365,
47fd5c32 Poul Sander 2024-10-05 08:44 1195
  https://github.com/fmtlib/fmt/pull/3366,
47fd5c32 Poul Sander 2024-10-05 08:44 1196
  https://github.com/fmtlib/fmt/pull/3374,
47fd5c32 Poul Sander 2024-10-05 08:44 1197
  https://github.com/fmtlib/fmt/issues/3377,
47fd5c32 Poul Sander 2024-10-05 08:44 1198
  https://github.com/fmtlib/fmt/pull/3378,
47fd5c32 Poul Sander 2024-10-05 08:44 1199
  https://github.com/fmtlib/fmt/issues/3381,
47fd5c32 Poul Sander 2024-10-05 08:44 1200
  https://github.com/fmtlib/fmt/pull/3398,
47fd5c32 Poul Sander 2024-10-05 08:44 1201
  https://github.com/fmtlib/fmt/pull/3413,
47fd5c32 Poul Sander 2024-10-05 08:44 1202
  https://github.com/fmtlib/fmt/issues/3415).
47fd5c32 Poul Sander 2024-10-05 08:44 1203
  Thanks @phprus, @gsjaardema, @NewbieOrange, @EngineLessCC, @asmaloney,
47fd5c32 Poul Sander 2024-10-05 08:44 1204
  @HazardyKnusperkeks, @sergiud, @Youw, @thesmurph, @czudziakm,
47fd5c32 Poul Sander 2024-10-05 08:44 1205
  @Roman-Koshelev, @chronoxor, @ShawnZhong, @russelltg, @glebm, @tmartin-gh,
47fd5c32 Poul Sander 2024-10-05 08:44 1206
  @Zhaojun-Liu, @louiswins and @mogemimi.
47fd5c32 Poul Sander 2024-10-05 08:44 1207
47fd5c32 Poul Sander 2024-10-05 08:44 1208
# 9.1.0 - 2022-08-27
47fd5c32 Poul Sander 2024-10-05 08:44 1209
47fd5c32 Poul Sander 2024-10-05 08:44 1210
- `fmt::formatted_size` now works at compile time
47fd5c32 Poul Sander 2024-10-05 08:44 1211
  (https://github.com/fmtlib/fmt/pull/3026). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1212
  ([godbolt](https://godbolt.org/z/1MW5rMdf8)):
47fd5c32 Poul Sander 2024-10-05 08:44 1213
47fd5c32 Poul Sander 2024-10-05 08:44 1214
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1215
  #include <fmt/compile.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1216
47fd5c32 Poul Sander 2024-10-05 08:44 1217
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1218
    using namespace fmt::literals;
47fd5c32 Poul Sander 2024-10-05 08:44 1219
    constexpr size_t n = fmt::formatted_size("{}"_cf, 42);
47fd5c32 Poul Sander 2024-10-05 08:44 1220
    fmt::print("{}\n", n); // prints 2
47fd5c32 Poul Sander 2024-10-05 08:44 1221
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1222
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1223
47fd5c32 Poul Sander 2024-10-05 08:44 1224
  Thanks @marksantaniello.
47fd5c32 Poul Sander 2024-10-05 08:44 1225
47fd5c32 Poul Sander 2024-10-05 08:44 1226
- Fixed handling of invalid UTF-8
47fd5c32 Poul Sander 2024-10-05 08:44 1227
  (https://github.com/fmtlib/fmt/pull/3038,
47fd5c32 Poul Sander 2024-10-05 08:44 1228
  https://github.com/fmtlib/fmt/pull/3044,
47fd5c32 Poul Sander 2024-10-05 08:44 1229
  https://github.com/fmtlib/fmt/pull/3056).
47fd5c32 Poul Sander 2024-10-05 08:44 1230
  Thanks @phprus and @skeeto.
47fd5c32 Poul Sander 2024-10-05 08:44 1231
47fd5c32 Poul Sander 2024-10-05 08:44 1232
- Improved Unicode support in `ostream` overloads of `print`
47fd5c32 Poul Sander 2024-10-05 08:44 1233
  (https://github.com/fmtlib/fmt/pull/2994,
47fd5c32 Poul Sander 2024-10-05 08:44 1234
  https://github.com/fmtlib/fmt/pull/3001,
47fd5c32 Poul Sander 2024-10-05 08:44 1235
  https://github.com/fmtlib/fmt/pull/3025). Thanks @dimztimz.
47fd5c32 Poul Sander 2024-10-05 08:44 1236
47fd5c32 Poul Sander 2024-10-05 08:44 1237
- Fixed handling of the sign specifier in localized formatting on
47fd5c32 Poul Sander 2024-10-05 08:44 1238
  systems with 32-bit `wchar_t`
47fd5c32 Poul Sander 2024-10-05 08:44 1239
  (https://github.com/fmtlib/fmt/issues/3041).
47fd5c32 Poul Sander 2024-10-05 08:44 1240
47fd5c32 Poul Sander 2024-10-05 08:44 1241
- Added support for wide streams to `fmt::streamed`
47fd5c32 Poul Sander 2024-10-05 08:44 1242
  (https://github.com/fmtlib/fmt/pull/2994). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1243
47fd5c32 Poul Sander 2024-10-05 08:44 1244
- Added the `n` specifier that disables the output of delimiters when
47fd5c32 Poul Sander 2024-10-05 08:44 1245
  formatting ranges (https://github.com/fmtlib/fmt/pull/2981,
47fd5c32 Poul Sander 2024-10-05 08:44 1246
  https://github.com/fmtlib/fmt/pull/2983). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1247
  ([godbolt](https://godbolt.org/z/roKqGdj8c)):
47fd5c32 Poul Sander 2024-10-05 08:44 1248
47fd5c32 Poul Sander 2024-10-05 08:44 1249
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1250
  #include <fmt/ranges.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1251
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 1252
47fd5c32 Poul Sander 2024-10-05 08:44 1253
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1254
    auto v = std::vector{1, 2, 3};
47fd5c32 Poul Sander 2024-10-05 08:44 1255
    fmt::print("{:n}\n", v); // prints 1, 2, 3
47fd5c32 Poul Sander 2024-10-05 08:44 1256
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1257
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1258
47fd5c32 Poul Sander 2024-10-05 08:44 1259
  Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1260
47fd5c32 Poul Sander 2024-10-05 08:44 1261
- Worked around problematic `std::string_view` constructors introduced
47fd5c32 Poul Sander 2024-10-05 08:44 1262
  in C++23 (https://github.com/fmtlib/fmt/issues/3030,
47fd5c32 Poul Sander 2024-10-05 08:44 1263
  https://github.com/fmtlib/fmt/issues/3050). Thanks @strega-nil-ms.
47fd5c32 Poul Sander 2024-10-05 08:44 1264
47fd5c32 Poul Sander 2024-10-05 08:44 1265
- Improve handling (exclusion) of recursive ranges
47fd5c32 Poul Sander 2024-10-05 08:44 1266
  (https://github.com/fmtlib/fmt/issues/2968,
47fd5c32 Poul Sander 2024-10-05 08:44 1267
  https://github.com/fmtlib/fmt/pull/2974). Thanks @Dani-Hub.
47fd5c32 Poul Sander 2024-10-05 08:44 1268
47fd5c32 Poul Sander 2024-10-05 08:44 1269
- Improved error reporting in format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 1270
  (https://github.com/fmtlib/fmt/issues/3055).
47fd5c32 Poul Sander 2024-10-05 08:44 1271
47fd5c32 Poul Sander 2024-10-05 08:44 1272
- Improved the implementation of
47fd5c32 Poul Sander 2024-10-05 08:44 1273
  [Dragonbox](https://github.com/jk-jeon/dragonbox), the algorithm
47fd5c32 Poul Sander 2024-10-05 08:44 1274
  used for the default floating-point formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1275
  (https://github.com/fmtlib/fmt/pull/2984). Thanks @jk-jeon.
47fd5c32 Poul Sander 2024-10-05 08:44 1276
47fd5c32 Poul Sander 2024-10-05 08:44 1277
- Fixed issues with floating-point formatting on exotic platforms.
47fd5c32 Poul Sander 2024-10-05 08:44 1278
47fd5c32 Poul Sander 2024-10-05 08:44 1279
- Improved the implementation of chrono formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1280
  (https://github.com/fmtlib/fmt/pull/3010). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1281
47fd5c32 Poul Sander 2024-10-05 08:44 1282
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 1283
  (https://github.com/fmtlib/fmt/pull/2966,
47fd5c32 Poul Sander 2024-10-05 08:44 1284
  https://github.com/fmtlib/fmt/pull/3009,
47fd5c32 Poul Sander 2024-10-05 08:44 1285
  https://github.com/fmtlib/fmt/issues/3020,
47fd5c32 Poul Sander 2024-10-05 08:44 1286
  https://github.com/fmtlib/fmt/pull/3037).
47fd5c32 Poul Sander 2024-10-05 08:44 1287
  Thanks @mwinterb, @jcelerier and @remiburtin.
47fd5c32 Poul Sander 2024-10-05 08:44 1288
47fd5c32 Poul Sander 2024-10-05 08:44 1289
- Improved build configuration
47fd5c32 Poul Sander 2024-10-05 08:44 1290
  (https://github.com/fmtlib/fmt/pull/2991,
47fd5c32 Poul Sander 2024-10-05 08:44 1291
  https://github.com/fmtlib/fmt/pull/2995,
47fd5c32 Poul Sander 2024-10-05 08:44 1292
  https://github.com/fmtlib/fmt/issues/3004,
47fd5c32 Poul Sander 2024-10-05 08:44 1293
  https://github.com/fmtlib/fmt/pull/3007,
47fd5c32 Poul Sander 2024-10-05 08:44 1294
  https://github.com/fmtlib/fmt/pull/3040).
47fd5c32 Poul Sander 2024-10-05 08:44 1295
  Thanks @dimztimz and @hwhsu1231.
47fd5c32 Poul Sander 2024-10-05 08:44 1296
47fd5c32 Poul Sander 2024-10-05 08:44 1297
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 1298
  (https://github.com/fmtlib/fmt/issues/2969,
47fd5c32 Poul Sander 2024-10-05 08:44 1299
  https://github.com/fmtlib/fmt/pull/2971,
47fd5c32 Poul Sander 2024-10-05 08:44 1300
  https://github.com/fmtlib/fmt/issues/2975,
47fd5c32 Poul Sander 2024-10-05 08:44 1301
  https://github.com/fmtlib/fmt/pull/2982,
47fd5c32 Poul Sander 2024-10-05 08:44 1302
  https://github.com/fmtlib/fmt/pull/2985,
47fd5c32 Poul Sander 2024-10-05 08:44 1303
  https://github.com/fmtlib/fmt/issues/2988,
47fd5c32 Poul Sander 2024-10-05 08:44 1304
  https://github.com/fmtlib/fmt/issues/2989,
47fd5c32 Poul Sander 2024-10-05 08:44 1305
  https://github.com/fmtlib/fmt/issues/3000,
47fd5c32 Poul Sander 2024-10-05 08:44 1306
  https://github.com/fmtlib/fmt/issues/3006,
47fd5c32 Poul Sander 2024-10-05 08:44 1307
  https://github.com/fmtlib/fmt/issues/3014,
47fd5c32 Poul Sander 2024-10-05 08:44 1308
  https://github.com/fmtlib/fmt/issues/3015,
47fd5c32 Poul Sander 2024-10-05 08:44 1309
  https://github.com/fmtlib/fmt/pull/3021,
47fd5c32 Poul Sander 2024-10-05 08:44 1310
  https://github.com/fmtlib/fmt/issues/3023,
47fd5c32 Poul Sander 2024-10-05 08:44 1311
  https://github.com/fmtlib/fmt/pull/3024,
47fd5c32 Poul Sander 2024-10-05 08:44 1312
  https://github.com/fmtlib/fmt/pull/3029,
47fd5c32 Poul Sander 2024-10-05 08:44 1313
  https://github.com/fmtlib/fmt/pull/3043,
47fd5c32 Poul Sander 2024-10-05 08:44 1314
  https://github.com/fmtlib/fmt/issues/3052,
47fd5c32 Poul Sander 2024-10-05 08:44 1315
  https://github.com/fmtlib/fmt/pull/3053,
47fd5c32 Poul Sander 2024-10-05 08:44 1316
  https://github.com/fmtlib/fmt/pull/3054).
47fd5c32 Poul Sander 2024-10-05 08:44 1317
  Thanks @h-friederich, @dimztimz, @olupton, @bernhardmgruber and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1318
47fd5c32 Poul Sander 2024-10-05 08:44 1319
# 9.0.0 - 2022-07-04
47fd5c32 Poul Sander 2024-10-05 08:44 1320
47fd5c32 Poul Sander 2024-10-05 08:44 1321
- Switched to the internal floating point formatter for all decimal
47fd5c32 Poul Sander 2024-10-05 08:44 1322
  presentation formats. In particular this results in consistent
47fd5c32 Poul Sander 2024-10-05 08:44 1323
  rounding on all platforms and removing the `s[n]printf` fallback for
47fd5c32 Poul Sander 2024-10-05 08:44 1324
  decimal FP formatting.
47fd5c32 Poul Sander 2024-10-05 08:44 1325
47fd5c32 Poul Sander 2024-10-05 08:44 1326
- Compile-time floating point formatting no longer requires the
47fd5c32 Poul Sander 2024-10-05 08:44 1327
  header-only mode. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1328
  ([godbolt](https://godbolt.org/z/G37PTeG3b)):
47fd5c32 Poul Sander 2024-10-05 08:44 1329
47fd5c32 Poul Sander 2024-10-05 08:44 1330
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1331
  #include <array>
47fd5c32 Poul Sander 2024-10-05 08:44 1332
  #include <fmt/compile.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1333
47fd5c32 Poul Sander 2024-10-05 08:44 1334
  consteval auto compile_time_dtoa(double value) -> std::array<char, 10> {
47fd5c32 Poul Sander 2024-10-05 08:44 1335
    auto result = std::array<char, 10>();
47fd5c32 Poul Sander 2024-10-05 08:44 1336
    fmt::format_to(result.data(), FMT_COMPILE("{}"), value);
47fd5c32 Poul Sander 2024-10-05 08:44 1337
    return result;
47fd5c32 Poul Sander 2024-10-05 08:44 1338
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1339
47fd5c32 Poul Sander 2024-10-05 08:44 1340
  constexpr auto answer = compile_time_dtoa(0.42);
47fd5c32 Poul Sander 2024-10-05 08:44 1341
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1342
47fd5c32 Poul Sander 2024-10-05 08:44 1343
  works with the default settings.
47fd5c32 Poul Sander 2024-10-05 08:44 1344
47fd5c32 Poul Sander 2024-10-05 08:44 1345
- Improved the implementation of
47fd5c32 Poul Sander 2024-10-05 08:44 1346
  [Dragonbox](https://github.com/jk-jeon/dragonbox), the algorithm
47fd5c32 Poul Sander 2024-10-05 08:44 1347
  used for the default floating-point formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1348
  (https://github.com/fmtlib/fmt/pull/2713,
47fd5c32 Poul Sander 2024-10-05 08:44 1349
  https://github.com/fmtlib/fmt/pull/2750). Thanks @jk-jeon.
47fd5c32 Poul Sander 2024-10-05 08:44 1350
47fd5c32 Poul Sander 2024-10-05 08:44 1351
- Made `fmt::to_string` work with `__float128`. This uses the internal
47fd5c32 Poul Sander 2024-10-05 08:44 1352
  FP formatter and works even on system without `__float128` support
47fd5c32 Poul Sander 2024-10-05 08:44 1353
  in `[s]printf`.
47fd5c32 Poul Sander 2024-10-05 08:44 1354
47fd5c32 Poul Sander 2024-10-05 08:44 1355
- Disabled automatic `std::ostream` insertion operator (`operator<<`)
47fd5c32 Poul Sander 2024-10-05 08:44 1356
  discovery when `fmt/ostream.h` is included to prevent ODR
47fd5c32 Poul Sander 2024-10-05 08:44 1357
  violations. You can get the old behavior by defining
47fd5c32 Poul Sander 2024-10-05 08:44 1358
  `FMT_DEPRECATED_OSTREAM` but this will be removed in the next major
47fd5c32 Poul Sander 2024-10-05 08:44 1359
  release. Use `fmt::streamed` or `fmt::ostream_formatter` to enable
47fd5c32 Poul Sander 2024-10-05 08:44 1360
  formatting via `std::ostream` instead.
47fd5c32 Poul Sander 2024-10-05 08:44 1361
47fd5c32 Poul Sander 2024-10-05 08:44 1362
- Added `fmt::ostream_formatter` that can be used to write `formatter`
47fd5c32 Poul Sander 2024-10-05 08:44 1363
  specializations that perform formatting via `std::ostream`. For
47fd5c32 Poul Sander 2024-10-05 08:44 1364
  example ([godbolt](https://godbolt.org/z/5sEc5qMsf)):
47fd5c32 Poul Sander 2024-10-05 08:44 1365
47fd5c32 Poul Sander 2024-10-05 08:44 1366
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1367
  #include <fmt/ostream.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1368
47fd5c32 Poul Sander 2024-10-05 08:44 1369
  struct date {
47fd5c32 Poul Sander 2024-10-05 08:44 1370
    int year, month, day;
47fd5c32 Poul Sander 2024-10-05 08:44 1371
47fd5c32 Poul Sander 2024-10-05 08:44 1372
    friend std::ostream& operator<<(std::ostream& os, const date& d) {
47fd5c32 Poul Sander 2024-10-05 08:44 1373
      return os << d.year << '-' << d.month << '-' << d.day;
47fd5c32 Poul Sander 2024-10-05 08:44 1374
    }
47fd5c32 Poul Sander 2024-10-05 08:44 1375
  };
47fd5c32 Poul Sander 2024-10-05 08:44 1376
47fd5c32 Poul Sander 2024-10-05 08:44 1377
  template <> struct fmt::formatter<date> : ostream_formatter {};
47fd5c32 Poul Sander 2024-10-05 08:44 1378
47fd5c32 Poul Sander 2024-10-05 08:44 1379
  std::string s = fmt::format("The date is {}", date{2012, 12, 9});
47fd5c32 Poul Sander 2024-10-05 08:44 1380
  // s == "The date is 2012-12-9"
47fd5c32 Poul Sander 2024-10-05 08:44 1381
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1382
47fd5c32 Poul Sander 2024-10-05 08:44 1383
- Added the `fmt::streamed` function that takes an object and formats
47fd5c32 Poul Sander 2024-10-05 08:44 1384
  it via `std::ostream`. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1385
  ([godbolt](https://godbolt.org/z/5G3346G1f)):
47fd5c32 Poul Sander 2024-10-05 08:44 1386
47fd5c32 Poul Sander 2024-10-05 08:44 1387
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1388
  #include <thread>
47fd5c32 Poul Sander 2024-10-05 08:44 1389
  #include <fmt/ostream.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1390
47fd5c32 Poul Sander 2024-10-05 08:44 1391
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1392
    fmt::print("Current thread id: {}\n",
47fd5c32 Poul Sander 2024-10-05 08:44 1393
               fmt::streamed(std::this_thread::get_id()));
47fd5c32 Poul Sander 2024-10-05 08:44 1394
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1395
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1396
47fd5c32 Poul Sander 2024-10-05 08:44 1397
  Note that `fmt/std.h` provides a `formatter` specialization for
47fd5c32 Poul Sander 2024-10-05 08:44 1398
  `std::thread::id` so you don\'t need to format it via
47fd5c32 Poul Sander 2024-10-05 08:44 1399
  `std::ostream`.
47fd5c32 Poul Sander 2024-10-05 08:44 1400
47fd5c32 Poul Sander 2024-10-05 08:44 1401
- Deprecated implicit conversions of unscoped enums to integers for
47fd5c32 Poul Sander 2024-10-05 08:44 1402
  consistency with scoped enums.
47fd5c32 Poul Sander 2024-10-05 08:44 1403
47fd5c32 Poul Sander 2024-10-05 08:44 1404
- Added an argument-dependent lookup based `format_as` extension API
47fd5c32 Poul Sander 2024-10-05 08:44 1405
  to simplify formatting of enums.
47fd5c32 Poul Sander 2024-10-05 08:44 1406
47fd5c32 Poul Sander 2024-10-05 08:44 1407
- Added experimental `std::variant` formatting support
47fd5c32 Poul Sander 2024-10-05 08:44 1408
  (https://github.com/fmtlib/fmt/pull/2941). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1409
  ([godbolt](https://godbolt.org/z/KG9z6cq68)):
47fd5c32 Poul Sander 2024-10-05 08:44 1410
47fd5c32 Poul Sander 2024-10-05 08:44 1411
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1412
  #include <variant>
47fd5c32 Poul Sander 2024-10-05 08:44 1413
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1414
47fd5c32 Poul Sander 2024-10-05 08:44 1415
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1416
    auto v = std::variant<int, std::string>(42);
47fd5c32 Poul Sander 2024-10-05 08:44 1417
    fmt::print("{}\n", v);
47fd5c32 Poul Sander 2024-10-05 08:44 1418
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1419
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1420
47fd5c32 Poul Sander 2024-10-05 08:44 1421
  prints:
47fd5c32 Poul Sander 2024-10-05 08:44 1422
47fd5c32 Poul Sander 2024-10-05 08:44 1423
      variant(42)
47fd5c32 Poul Sander 2024-10-05 08:44 1424
47fd5c32 Poul Sander 2024-10-05 08:44 1425
  Thanks @jehelset.
47fd5c32 Poul Sander 2024-10-05 08:44 1426
47fd5c32 Poul Sander 2024-10-05 08:44 1427
- Added experimental `std::filesystem::path` formatting support
47fd5c32 Poul Sander 2024-10-05 08:44 1428
  (https://github.com/fmtlib/fmt/issues/2865,
47fd5c32 Poul Sander 2024-10-05 08:44 1429
  https://github.com/fmtlib/fmt/pull/2902,
47fd5c32 Poul Sander 2024-10-05 08:44 1430
  https://github.com/fmtlib/fmt/issues/2917,
47fd5c32 Poul Sander 2024-10-05 08:44 1431
  https://github.com/fmtlib/fmt/pull/2918). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1432
  ([godbolt](https://godbolt.org/z/o44dMexEb)):
47fd5c32 Poul Sander 2024-10-05 08:44 1433
47fd5c32 Poul Sander 2024-10-05 08:44 1434
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1435
  #include <filesystem>
47fd5c32 Poul Sander 2024-10-05 08:44 1436
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1437
47fd5c32 Poul Sander 2024-10-05 08:44 1438
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1439
    fmt::print("There is no place like {}.", std::filesystem::path("/home"));
47fd5c32 Poul Sander 2024-10-05 08:44 1440
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1441
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1442
47fd5c32 Poul Sander 2024-10-05 08:44 1443
  prints:
47fd5c32 Poul Sander 2024-10-05 08:44 1444
47fd5c32 Poul Sander 2024-10-05 08:44 1445
      There is no place like "/home".
47fd5c32 Poul Sander 2024-10-05 08:44 1446
47fd5c32 Poul Sander 2024-10-05 08:44 1447
  Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1448
47fd5c32 Poul Sander 2024-10-05 08:44 1449
- Added a `std::thread::id` formatter to `fmt/std.h`. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1450
  ([godbolt](https://godbolt.org/z/j1azbYf3E)):
47fd5c32 Poul Sander 2024-10-05 08:44 1451
47fd5c32 Poul Sander 2024-10-05 08:44 1452
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1453
  #include <thread>
47fd5c32 Poul Sander 2024-10-05 08:44 1454
  #include <fmt/std.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1455
47fd5c32 Poul Sander 2024-10-05 08:44 1456
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1457
    fmt::print("Current thread id: {}\n", std::this_thread::get_id());
47fd5c32 Poul Sander 2024-10-05 08:44 1458
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1459
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1460
47fd5c32 Poul Sander 2024-10-05 08:44 1461
- Added `fmt::styled` that applies a text style to an individual
47fd5c32 Poul Sander 2024-10-05 08:44 1462
  argument (https://github.com/fmtlib/fmt/pull/2793). For
47fd5c32 Poul Sander 2024-10-05 08:44 1463
  example ([godbolt](https://godbolt.org/z/vWGW7v5M6)):
47fd5c32 Poul Sander 2024-10-05 08:44 1464
47fd5c32 Poul Sander 2024-10-05 08:44 1465
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1466
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1467
  #include <fmt/color.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1468
47fd5c32 Poul Sander 2024-10-05 08:44 1469
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1470
    auto now = std::chrono::system_clock::now();
47fd5c32 Poul Sander 2024-10-05 08:44 1471
    fmt::print(
47fd5c32 Poul Sander 2024-10-05 08:44 1472
      "[{}] {}: {}\n",
47fd5c32 Poul Sander 2024-10-05 08:44 1473
      fmt::styled(now, fmt::emphasis::bold),
47fd5c32 Poul Sander 2024-10-05 08:44 1474
      fmt::styled("error", fg(fmt::color::red)),
47fd5c32 Poul Sander 2024-10-05 08:44 1475
      "something went wrong");
47fd5c32 Poul Sander 2024-10-05 08:44 1476
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1477
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1478
47fd5c32 Poul Sander 2024-10-05 08:44 1479
  prints
47fd5c32 Poul Sander 2024-10-05 08:44 1480
47fd5c32 Poul Sander 2024-10-05 08:44 1481
  ![](https://user-images.githubusercontent.com/576385/175071215-12809244-dab0-4005-96d8-7cd911c964d5.png)
47fd5c32 Poul Sander 2024-10-05 08:44 1482
47fd5c32 Poul Sander 2024-10-05 08:44 1483
  Thanks @rbrugo.
47fd5c32 Poul Sander 2024-10-05 08:44 1484
47fd5c32 Poul Sander 2024-10-05 08:44 1485
- Made `fmt::print` overload for text styles correctly handle UTF-8
47fd5c32 Poul Sander 2024-10-05 08:44 1486
  (https://github.com/fmtlib/fmt/issues/2681,
47fd5c32 Poul Sander 2024-10-05 08:44 1487
  https://github.com/fmtlib/fmt/pull/2701). Thanks @AlexGuteniev.
47fd5c32 Poul Sander 2024-10-05 08:44 1488
47fd5c32 Poul Sander 2024-10-05 08:44 1489
- Fixed Unicode handling when writing to an ostream.
47fd5c32 Poul Sander 2024-10-05 08:44 1490
47fd5c32 Poul Sander 2024-10-05 08:44 1491
- Added support for nested specifiers to range formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1492
  (https://github.com/fmtlib/fmt/pull/2673). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1493
  ([godbolt](https://godbolt.org/z/xd3Gj38cf)):
47fd5c32 Poul Sander 2024-10-05 08:44 1494
47fd5c32 Poul Sander 2024-10-05 08:44 1495
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1496
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 1497
  #include <fmt/ranges.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1498
47fd5c32 Poul Sander 2024-10-05 08:44 1499
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1500
    fmt::print("{::#x}\n", std::vector{10, 20, 30});
47fd5c32 Poul Sander 2024-10-05 08:44 1501
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1502
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1503
47fd5c32 Poul Sander 2024-10-05 08:44 1504
  prints `[0xa, 0x14, 0x1e]`.
47fd5c32 Poul Sander 2024-10-05 08:44 1505
47fd5c32 Poul Sander 2024-10-05 08:44 1506
  Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1507
47fd5c32 Poul Sander 2024-10-05 08:44 1508
- Implemented escaping of wide strings in ranges
47fd5c32 Poul Sander 2024-10-05 08:44 1509
  (https://github.com/fmtlib/fmt/pull/2904). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1510
47fd5c32 Poul Sander 2024-10-05 08:44 1511
- Added support for ranges with `begin` / `end` found via the
47fd5c32 Poul Sander 2024-10-05 08:44 1512
  argument-dependent lookup
47fd5c32 Poul Sander 2024-10-05 08:44 1513
  (https://github.com/fmtlib/fmt/pull/2807). Thanks @rbrugo.
47fd5c32 Poul Sander 2024-10-05 08:44 1514
47fd5c32 Poul Sander 2024-10-05 08:44 1515
- Fixed formatting of certain kinds of ranges of ranges
47fd5c32 Poul Sander 2024-10-05 08:44 1516
  (https://github.com/fmtlib/fmt/pull/2787). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1517
47fd5c32 Poul Sander 2024-10-05 08:44 1518
- Fixed handling of maps with element types other than `std::pair`
47fd5c32 Poul Sander 2024-10-05 08:44 1519
  (https://github.com/fmtlib/fmt/pull/2944). Thanks @BrukerJWD.
47fd5c32 Poul Sander 2024-10-05 08:44 1520
47fd5c32 Poul Sander 2024-10-05 08:44 1521
- Made tuple formatter enabled only if elements are formattable
47fd5c32 Poul Sander 2024-10-05 08:44 1522
  (https://github.com/fmtlib/fmt/issues/2939,
47fd5c32 Poul Sander 2024-10-05 08:44 1523
  https://github.com/fmtlib/fmt/pull/2940). Thanks @jehelset.
47fd5c32 Poul Sander 2024-10-05 08:44 1524
47fd5c32 Poul Sander 2024-10-05 08:44 1525
- Made `fmt::join` compatible with format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 1526
  (https://github.com/fmtlib/fmt/issues/2719,
47fd5c32 Poul Sander 2024-10-05 08:44 1527
  https://github.com/fmtlib/fmt/pull/2720). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1528
47fd5c32 Poul Sander 2024-10-05 08:44 1529
- Made compile-time checks work with named arguments of custom types
47fd5c32 Poul Sander 2024-10-05 08:44 1530
  and `std::ostream` `print` overloads
47fd5c32 Poul Sander 2024-10-05 08:44 1531
  (https://github.com/fmtlib/fmt/issues/2816,
47fd5c32 Poul Sander 2024-10-05 08:44 1532
  https://github.com/fmtlib/fmt/issues/2817,
47fd5c32 Poul Sander 2024-10-05 08:44 1533
  https://github.com/fmtlib/fmt/pull/2819). Thanks @timsong-cpp.
47fd5c32 Poul Sander 2024-10-05 08:44 1534
47fd5c32 Poul Sander 2024-10-05 08:44 1535
- Removed `make_args_checked` because it is no longer needed for
47fd5c32 Poul Sander 2024-10-05 08:44 1536
  compile-time checks
47fd5c32 Poul Sander 2024-10-05 08:44 1537
  (https://github.com/fmtlib/fmt/pull/2760). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1538
47fd5c32 Poul Sander 2024-10-05 08:44 1539
- Removed the following deprecated APIs: `_format`, `arg_join`, the
47fd5c32 Poul Sander 2024-10-05 08:44 1540
  `format_to` overload that takes a memory buffer, `[v]fprintf` that
47fd5c32 Poul Sander 2024-10-05 08:44 1541
  takes an `ostream`.
47fd5c32 Poul Sander 2024-10-05 08:44 1542
47fd5c32 Poul Sander 2024-10-05 08:44 1543
- Removed the deprecated implicit conversion of `[const] signed char*`
47fd5c32 Poul Sander 2024-10-05 08:44 1544
  and `[const] unsigned char*` to C strings.
47fd5c32 Poul Sander 2024-10-05 08:44 1545
47fd5c32 Poul Sander 2024-10-05 08:44 1546
- Removed the deprecated `fmt/locale.h`.
47fd5c32 Poul Sander 2024-10-05 08:44 1547
47fd5c32 Poul Sander 2024-10-05 08:44 1548
- Replaced the deprecated `fileno()` with `descriptor()` in
47fd5c32 Poul Sander 2024-10-05 08:44 1549
  `buffered_file`.
47fd5c32 Poul Sander 2024-10-05 08:44 1550
47fd5c32 Poul Sander 2024-10-05 08:44 1551
- Moved `to_string_view` to the `detail` namespace since it\'s an
47fd5c32 Poul Sander 2024-10-05 08:44 1552
  implementation detail.
47fd5c32 Poul Sander 2024-10-05 08:44 1553
47fd5c32 Poul Sander 2024-10-05 08:44 1554
- Made access mode of a created file consistent with `fopen` by
47fd5c32 Poul Sander 2024-10-05 08:44 1555
  setting `S_IWGRP` and `S_IWOTH`
47fd5c32 Poul Sander 2024-10-05 08:44 1556
  (https://github.com/fmtlib/fmt/pull/2733). Thanks @arogge.
47fd5c32 Poul Sander 2024-10-05 08:44 1557
47fd5c32 Poul Sander 2024-10-05 08:44 1558
- Removed a redundant buffer resize when formatting to `std::ostream`
47fd5c32 Poul Sander 2024-10-05 08:44 1559
  (https://github.com/fmtlib/fmt/issues/2842,
47fd5c32 Poul Sander 2024-10-05 08:44 1560
  https://github.com/fmtlib/fmt/pull/2843). Thanks @jcelerier.
47fd5c32 Poul Sander 2024-10-05 08:44 1561
47fd5c32 Poul Sander 2024-10-05 08:44 1562
- Made precision computation for strings consistent with width
47fd5c32 Poul Sander 2024-10-05 08:44 1563
  (https://github.com/fmtlib/fmt/issues/2888).
47fd5c32 Poul Sander 2024-10-05 08:44 1564
47fd5c32 Poul Sander 2024-10-05 08:44 1565
- Fixed handling of locale separators in floating point formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1566
  (https://github.com/fmtlib/fmt/issues/2830).
47fd5c32 Poul Sander 2024-10-05 08:44 1567
47fd5c32 Poul Sander 2024-10-05 08:44 1568
- Made sign specifiers work with `__int128_t`
47fd5c32 Poul Sander 2024-10-05 08:44 1569
  (https://github.com/fmtlib/fmt/issues/2773).
47fd5c32 Poul Sander 2024-10-05 08:44 1570
47fd5c32 Poul Sander 2024-10-05 08:44 1571
- Improved support for systems such as CHERI with extra data stored in
47fd5c32 Poul Sander 2024-10-05 08:44 1572
  pointers (https://github.com/fmtlib/fmt/pull/2932).
47fd5c32 Poul Sander 2024-10-05 08:44 1573
  Thanks @davidchisnall.
47fd5c32 Poul Sander 2024-10-05 08:44 1574
47fd5c32 Poul Sander 2024-10-05 08:44 1575
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 1576
  (https://github.com/fmtlib/fmt/pull/2706,
47fd5c32 Poul Sander 2024-10-05 08:44 1577
  https://github.com/fmtlib/fmt/pull/2712,
47fd5c32 Poul Sander 2024-10-05 08:44 1578
  https://github.com/fmtlib/fmt/pull/2789,
47fd5c32 Poul Sander 2024-10-05 08:44 1579
  https://github.com/fmtlib/fmt/pull/2803,
47fd5c32 Poul Sander 2024-10-05 08:44 1580
  https://github.com/fmtlib/fmt/pull/2805,
47fd5c32 Poul Sander 2024-10-05 08:44 1581
  https://github.com/fmtlib/fmt/pull/2815,
47fd5c32 Poul Sander 2024-10-05 08:44 1582
  https://github.com/fmtlib/fmt/pull/2924).
47fd5c32 Poul Sander 2024-10-05 08:44 1583
  Thanks @BRevzin, @Pokechu22, @setoye, @rtobar, @rbrugo, @anoonD and
47fd5c32 Poul Sander 2024-10-05 08:44 1584
  @leha-bot.
47fd5c32 Poul Sander 2024-10-05 08:44 1585
47fd5c32 Poul Sander 2024-10-05 08:44 1586
- Improved build configuration
47fd5c32 Poul Sander 2024-10-05 08:44 1587
  (https://github.com/fmtlib/fmt/pull/2766,
47fd5c32 Poul Sander 2024-10-05 08:44 1588
  https://github.com/fmtlib/fmt/pull/2772,
47fd5c32 Poul Sander 2024-10-05 08:44 1589
  https://github.com/fmtlib/fmt/pull/2836,
47fd5c32 Poul Sander 2024-10-05 08:44 1590
  https://github.com/fmtlib/fmt/pull/2852,
47fd5c32 Poul Sander 2024-10-05 08:44 1591
  https://github.com/fmtlib/fmt/pull/2907,
47fd5c32 Poul Sander 2024-10-05 08:44 1592
  https://github.com/fmtlib/fmt/pull/2913,
47fd5c32 Poul Sander 2024-10-05 08:44 1593
  https://github.com/fmtlib/fmt/pull/2914).
47fd5c32 Poul Sander 2024-10-05 08:44 1594
  Thanks @kambala-decapitator, @mattiasljungstrom, @kieselnb, @nathannaveen
47fd5c32 Poul Sander 2024-10-05 08:44 1595
  and @Vertexwahn.
47fd5c32 Poul Sander 2024-10-05 08:44 1596
47fd5c32 Poul Sander 2024-10-05 08:44 1597
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 1598
  (https://github.com/fmtlib/fmt/issues/2408,
47fd5c32 Poul Sander 2024-10-05 08:44 1599
  https://github.com/fmtlib/fmt/issues/2507,
47fd5c32 Poul Sander 2024-10-05 08:44 1600
  https://github.com/fmtlib/fmt/issues/2697,
47fd5c32 Poul Sander 2024-10-05 08:44 1601
  https://github.com/fmtlib/fmt/issues/2715,
47fd5c32 Poul Sander 2024-10-05 08:44 1602
  https://github.com/fmtlib/fmt/issues/2717,
47fd5c32 Poul Sander 2024-10-05 08:44 1603
  https://github.com/fmtlib/fmt/pull/2722,
47fd5c32 Poul Sander 2024-10-05 08:44 1604
  https://github.com/fmtlib/fmt/pull/2724,
47fd5c32 Poul Sander 2024-10-05 08:44 1605
  https://github.com/fmtlib/fmt/pull/2725,
47fd5c32 Poul Sander 2024-10-05 08:44 1606
  https://github.com/fmtlib/fmt/issues/2726,
47fd5c32 Poul Sander 2024-10-05 08:44 1607
  https://github.com/fmtlib/fmt/pull/2728,
47fd5c32 Poul Sander 2024-10-05 08:44 1608
  https://github.com/fmtlib/fmt/pull/2732,
47fd5c32 Poul Sander 2024-10-05 08:44 1609
  https://github.com/fmtlib/fmt/issues/2738,
47fd5c32 Poul Sander 2024-10-05 08:44 1610
  https://github.com/fmtlib/fmt/pull/2742,
47fd5c32 Poul Sander 2024-10-05 08:44 1611
  https://github.com/fmtlib/fmt/issues/2744,
47fd5c32 Poul Sander 2024-10-05 08:44 1612
  https://github.com/fmtlib/fmt/issues/2745,
47fd5c32 Poul Sander 2024-10-05 08:44 1613
  https://github.com/fmtlib/fmt/issues/2746,
47fd5c32 Poul Sander 2024-10-05 08:44 1614
  https://github.com/fmtlib/fmt/issues/2754,
47fd5c32 Poul Sander 2024-10-05 08:44 1615
  https://github.com/fmtlib/fmt/pull/2755,
47fd5c32 Poul Sander 2024-10-05 08:44 1616
  https://github.com/fmtlib/fmt/issues/2757,
47fd5c32 Poul Sander 2024-10-05 08:44 1617
  https://github.com/fmtlib/fmt/pull/2758,
47fd5c32 Poul Sander 2024-10-05 08:44 1618
  https://github.com/fmtlib/fmt/issues/2761,
47fd5c32 Poul Sander 2024-10-05 08:44 1619
  https://github.com/fmtlib/fmt/pull/2762,
47fd5c32 Poul Sander 2024-10-05 08:44 1620
  https://github.com/fmtlib/fmt/issues/2763,
47fd5c32 Poul Sander 2024-10-05 08:44 1621
  https://github.com/fmtlib/fmt/pull/2765,
47fd5c32 Poul Sander 2024-10-05 08:44 1622
  https://github.com/fmtlib/fmt/issues/2769,
47fd5c32 Poul Sander 2024-10-05 08:44 1623
  https://github.com/fmtlib/fmt/pull/2770,
47fd5c32 Poul Sander 2024-10-05 08:44 1624
  https://github.com/fmtlib/fmt/issues/2771,
47fd5c32 Poul Sander 2024-10-05 08:44 1625
  https://github.com/fmtlib/fmt/issues/2777,
47fd5c32 Poul Sander 2024-10-05 08:44 1626
  https://github.com/fmtlib/fmt/pull/2779,
47fd5c32 Poul Sander 2024-10-05 08:44 1627
  https://github.com/fmtlib/fmt/pull/2782,
47fd5c32 Poul Sander 2024-10-05 08:44 1628
  https://github.com/fmtlib/fmt/pull/2783,
47fd5c32 Poul Sander 2024-10-05 08:44 1629
  https://github.com/fmtlib/fmt/issues/2794,
47fd5c32 Poul Sander 2024-10-05 08:44 1630
  https://github.com/fmtlib/fmt/issues/2796,
47fd5c32 Poul Sander 2024-10-05 08:44 1631
  https://github.com/fmtlib/fmt/pull/2797,
47fd5c32 Poul Sander 2024-10-05 08:44 1632
  https://github.com/fmtlib/fmt/pull/2801,
47fd5c32 Poul Sander 2024-10-05 08:44 1633
  https://github.com/fmtlib/fmt/pull/2802,
47fd5c32 Poul Sander 2024-10-05 08:44 1634
  https://github.com/fmtlib/fmt/issues/2808,
47fd5c32 Poul Sander 2024-10-05 08:44 1635
  https://github.com/fmtlib/fmt/issues/2818,
47fd5c32 Poul Sander 2024-10-05 08:44 1636
  https://github.com/fmtlib/fmt/pull/2819,
47fd5c32 Poul Sander 2024-10-05 08:44 1637
  https://github.com/fmtlib/fmt/issues/2829,
47fd5c32 Poul Sander 2024-10-05 08:44 1638
  https://github.com/fmtlib/fmt/issues/2835,
47fd5c32 Poul Sander 2024-10-05 08:44 1639
  https://github.com/fmtlib/fmt/issues/2848,
47fd5c32 Poul Sander 2024-10-05 08:44 1640
  https://github.com/fmtlib/fmt/issues/2860,
47fd5c32 Poul Sander 2024-10-05 08:44 1641
  https://github.com/fmtlib/fmt/pull/2861,
47fd5c32 Poul Sander 2024-10-05 08:44 1642
  https://github.com/fmtlib/fmt/pull/2882,
47fd5c32 Poul Sander 2024-10-05 08:44 1643
  https://github.com/fmtlib/fmt/issues/2886,
47fd5c32 Poul Sander 2024-10-05 08:44 1644
  https://github.com/fmtlib/fmt/issues/2891,
47fd5c32 Poul Sander 2024-10-05 08:44 1645
  https://github.com/fmtlib/fmt/pull/2892,
47fd5c32 Poul Sander 2024-10-05 08:44 1646
  https://github.com/fmtlib/fmt/issues/2895,
47fd5c32 Poul Sander 2024-10-05 08:44 1647
  https://github.com/fmtlib/fmt/issues/2896,
47fd5c32 Poul Sander 2024-10-05 08:44 1648
  https://github.com/fmtlib/fmt/pull/2903,
47fd5c32 Poul Sander 2024-10-05 08:44 1649
  https://github.com/fmtlib/fmt/issues/2906,
47fd5c32 Poul Sander 2024-10-05 08:44 1650
  https://github.com/fmtlib/fmt/issues/2908,
47fd5c32 Poul Sander 2024-10-05 08:44 1651
  https://github.com/fmtlib/fmt/pull/2909,
47fd5c32 Poul Sander 2024-10-05 08:44 1652
  https://github.com/fmtlib/fmt/issues/2920,
47fd5c32 Poul Sander 2024-10-05 08:44 1653
  https://github.com/fmtlib/fmt/pull/2922,
47fd5c32 Poul Sander 2024-10-05 08:44 1654
  https://github.com/fmtlib/fmt/pull/2927,
47fd5c32 Poul Sander 2024-10-05 08:44 1655
  https://github.com/fmtlib/fmt/pull/2929,
47fd5c32 Poul Sander 2024-10-05 08:44 1656
  https://github.com/fmtlib/fmt/issues/2936,
47fd5c32 Poul Sander 2024-10-05 08:44 1657
  https://github.com/fmtlib/fmt/pull/2937,
47fd5c32 Poul Sander 2024-10-05 08:44 1658
  https://github.com/fmtlib/fmt/pull/2938,
47fd5c32 Poul Sander 2024-10-05 08:44 1659
  https://github.com/fmtlib/fmt/pull/2951,
47fd5c32 Poul Sander 2024-10-05 08:44 1660
  https://github.com/fmtlib/fmt/issues/2954,
47fd5c32 Poul Sander 2024-10-05 08:44 1661
  https://github.com/fmtlib/fmt/pull/2957,
47fd5c32 Poul Sander 2024-10-05 08:44 1662
  https://github.com/fmtlib/fmt/issues/2958,
47fd5c32 Poul Sander 2024-10-05 08:44 1663
  https://github.com/fmtlib/fmt/pull/2960).
47fd5c32 Poul Sander 2024-10-05 08:44 1664
  Thanks @matrackif @Tobi823, @ivan-volnov, @VasiliPupkin256,
47fd5c32 Poul Sander 2024-10-05 08:44 1665
  @federico-busato, @barcharcraz, @jk-jeon, @HazardyKnusperkeks, @dalboris,
47fd5c32 Poul Sander 2024-10-05 08:44 1666
  @seanm, @gsjaardema, @timsong-cpp, @seanm, @frithrah, @chronoxor, @Agga,
47fd5c32 Poul Sander 2024-10-05 08:44 1667
  @madmaxoft, @JurajX, @phprus and @Dani-Hub.
47fd5c32 Poul Sander 2024-10-05 08:44 1668
47fd5c32 Poul Sander 2024-10-05 08:44 1669
# 8.1.1 - 2022-01-06
47fd5c32 Poul Sander 2024-10-05 08:44 1670
47fd5c32 Poul Sander 2024-10-05 08:44 1671
- Restored ABI compatibility with version 8.0.x
47fd5c32 Poul Sander 2024-10-05 08:44 1672
  (https://github.com/fmtlib/fmt/issues/2695,
47fd5c32 Poul Sander 2024-10-05 08:44 1673
  https://github.com/fmtlib/fmt/pull/2696). Thanks @saraedum.
47fd5c32 Poul Sander 2024-10-05 08:44 1674
- Fixed chrono formatting on big endian systems
47fd5c32 Poul Sander 2024-10-05 08:44 1675
  (https://github.com/fmtlib/fmt/issues/2698,
47fd5c32 Poul Sander 2024-10-05 08:44 1676
  https://github.com/fmtlib/fmt/pull/2699).
47fd5c32 Poul Sander 2024-10-05 08:44 1677
  Thanks @phprus and @xvitaly.
47fd5c32 Poul Sander 2024-10-05 08:44 1678
- Fixed a linkage error with mingw
47fd5c32 Poul Sander 2024-10-05 08:44 1679
  (https://github.com/fmtlib/fmt/issues/2691,
47fd5c32 Poul Sander 2024-10-05 08:44 1680
  https://github.com/fmtlib/fmt/pull/2692). Thanks @rbberger.
47fd5c32 Poul Sander 2024-10-05 08:44 1681
47fd5c32 Poul Sander 2024-10-05 08:44 1682
# 8.1.0 - 2022-01-02
47fd5c32 Poul Sander 2024-10-05 08:44 1683
47fd5c32 Poul Sander 2024-10-05 08:44 1684
- Optimized chrono formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1685
  (https://github.com/fmtlib/fmt/pull/2500,
47fd5c32 Poul Sander 2024-10-05 08:44 1686
  https://github.com/fmtlib/fmt/pull/2537,
47fd5c32 Poul Sander 2024-10-05 08:44 1687
  https://github.com/fmtlib/fmt/issues/2541,
47fd5c32 Poul Sander 2024-10-05 08:44 1688
  https://github.com/fmtlib/fmt/pull/2544,
47fd5c32 Poul Sander 2024-10-05 08:44 1689
  https://github.com/fmtlib/fmt/pull/2550,
47fd5c32 Poul Sander 2024-10-05 08:44 1690
  https://github.com/fmtlib/fmt/pull/2551,
47fd5c32 Poul Sander 2024-10-05 08:44 1691
  https://github.com/fmtlib/fmt/pull/2576,
47fd5c32 Poul Sander 2024-10-05 08:44 1692
  https://github.com/fmtlib/fmt/issues/2577,
47fd5c32 Poul Sander 2024-10-05 08:44 1693
  https://github.com/fmtlib/fmt/pull/2586,
47fd5c32 Poul Sander 2024-10-05 08:44 1694
  https://github.com/fmtlib/fmt/pull/2591,
47fd5c32 Poul Sander 2024-10-05 08:44 1695
  https://github.com/fmtlib/fmt/pull/2594,
47fd5c32 Poul Sander 2024-10-05 08:44 1696
  https://github.com/fmtlib/fmt/pull/2602,
47fd5c32 Poul Sander 2024-10-05 08:44 1697
  https://github.com/fmtlib/fmt/pull/2617,
47fd5c32 Poul Sander 2024-10-05 08:44 1698
  https://github.com/fmtlib/fmt/issues/2628,
47fd5c32 Poul Sander 2024-10-05 08:44 1699
  https://github.com/fmtlib/fmt/pull/2633,
47fd5c32 Poul Sander 2024-10-05 08:44 1700
  https://github.com/fmtlib/fmt/issues/2670,
47fd5c32 Poul Sander 2024-10-05 08:44 1701
  https://github.com/fmtlib/fmt/pull/2671).
47fd5c32 Poul Sander 2024-10-05 08:44 1702
47fd5c32 Poul Sander 2024-10-05 08:44 1703
  Processing of some specifiers such as `%z` and `%Y` is now up to
47fd5c32 Poul Sander 2024-10-05 08:44 1704
  10-20 times faster, for example on GCC 11 with libstdc++:
47fd5c32 Poul Sander 2024-10-05 08:44 1705
47fd5c32 Poul Sander 2024-10-05 08:44 1706
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 1707
      Benchmark                                  Before             After
47fd5c32 Poul Sander 2024-10-05 08:44 1708
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 1709
      FMTFormatter_z                             261 ns             26.3 ns
47fd5c32 Poul Sander 2024-10-05 08:44 1710
      FMTFormatterCompile_z                      246 ns             11.6 ns
47fd5c32 Poul Sander 2024-10-05 08:44 1711
      FMTFormatter_Y                             263 ns             26.1 ns
47fd5c32 Poul Sander 2024-10-05 08:44 1712
      FMTFormatterCompile_Y                      244 ns             10.5 ns
47fd5c32 Poul Sander 2024-10-05 08:44 1713
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 1714
47fd5c32 Poul Sander 2024-10-05 08:44 1715
  Thanks @phprus and @toughengineer.
47fd5c32 Poul Sander 2024-10-05 08:44 1716
47fd5c32 Poul Sander 2024-10-05 08:44 1717
- Implemented subsecond formatting for chrono durations
47fd5c32 Poul Sander 2024-10-05 08:44 1718
  (https://github.com/fmtlib/fmt/pull/2623). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1719
  ([godbolt](https://godbolt.org/z/es7vWTETe)):
47fd5c32 Poul Sander 2024-10-05 08:44 1720
47fd5c32 Poul Sander 2024-10-05 08:44 1721
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1722
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1723
47fd5c32 Poul Sander 2024-10-05 08:44 1724
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1725
    fmt::print("{:%S}", std::chrono::milliseconds(1234));
47fd5c32 Poul Sander 2024-10-05 08:44 1726
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1727
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1728
47fd5c32 Poul Sander 2024-10-05 08:44 1729
  prints \"01.234\".
47fd5c32 Poul Sander 2024-10-05 08:44 1730
47fd5c32 Poul Sander 2024-10-05 08:44 1731
  Thanks @matrackif.
47fd5c32 Poul Sander 2024-10-05 08:44 1732
47fd5c32 Poul Sander 2024-10-05 08:44 1733
- Fixed handling of precision 0 when formatting chrono durations
47fd5c32 Poul Sander 2024-10-05 08:44 1734
  (https://github.com/fmtlib/fmt/issues/2587,
47fd5c32 Poul Sander 2024-10-05 08:44 1735
  https://github.com/fmtlib/fmt/pull/2588). Thanks @lukester1975.
47fd5c32 Poul Sander 2024-10-05 08:44 1736
47fd5c32 Poul Sander 2024-10-05 08:44 1737
- Fixed an overflow on invalid inputs in the `tm` formatter
47fd5c32 Poul Sander 2024-10-05 08:44 1738
  (https://github.com/fmtlib/fmt/pull/2564). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1739
47fd5c32 Poul Sander 2024-10-05 08:44 1740
- Added `fmt::group_digits` that formats integers with a non-localized
47fd5c32 Poul Sander 2024-10-05 08:44 1741
  digit separator (comma) for groups of three digits. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1742
  ([godbolt](https://godbolt.org/z/TxGxG9Poq)):
47fd5c32 Poul Sander 2024-10-05 08:44 1743
47fd5c32 Poul Sander 2024-10-05 08:44 1744
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1745
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1746
47fd5c32 Poul Sander 2024-10-05 08:44 1747
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1748
    fmt::print("{} dollars", fmt::group_digits(1000000));
47fd5c32 Poul Sander 2024-10-05 08:44 1749
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1750
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1751
47fd5c32 Poul Sander 2024-10-05 08:44 1752
  prints \"1,000,000 dollars\".
47fd5c32 Poul Sander 2024-10-05 08:44 1753
47fd5c32 Poul Sander 2024-10-05 08:44 1754
- Added support for faint, conceal, reverse and blink text styles
47fd5c32 Poul Sander 2024-10-05 08:44 1755
  (https://github.com/fmtlib/fmt/pull/2394):
47fd5c32 Poul Sander 2024-10-05 08:44 1756
47fd5c32 Poul Sander 2024-10-05 08:44 1757
  <https://user-images.githubusercontent.com/576385/147710227-c68f5317-f8fa-42c3-9123-7c4ba3c398cb.mp4>
47fd5c32 Poul Sander 2024-10-05 08:44 1758
47fd5c32 Poul Sander 2024-10-05 08:44 1759
  Thanks @benit8 and @data-man.
47fd5c32 Poul Sander 2024-10-05 08:44 1760
47fd5c32 Poul Sander 2024-10-05 08:44 1761
- Added experimental support for compile-time floating point
47fd5c32 Poul Sander 2024-10-05 08:44 1762
  formatting (https://github.com/fmtlib/fmt/pull/2426,
47fd5c32 Poul Sander 2024-10-05 08:44 1763
  https://github.com/fmtlib/fmt/pull/2470). It is currently
47fd5c32 Poul Sander 2024-10-05 08:44 1764
  limited to the header-only mode. Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 1765
47fd5c32 Poul Sander 2024-10-05 08:44 1766
- Added UDL-based named argument support to compile-time format string
47fd5c32 Poul Sander 2024-10-05 08:44 1767
  checks (https://github.com/fmtlib/fmt/issues/2640,
47fd5c32 Poul Sander 2024-10-05 08:44 1768
  https://github.com/fmtlib/fmt/pull/2649). For example
47fd5c32 Poul Sander 2024-10-05 08:44 1769
  ([godbolt](https://godbolt.org/z/ohGbbvonv)):
47fd5c32 Poul Sander 2024-10-05 08:44 1770
47fd5c32 Poul Sander 2024-10-05 08:44 1771
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1772
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1773
47fd5c32 Poul Sander 2024-10-05 08:44 1774
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1775
    using namespace fmt::literals;
47fd5c32 Poul Sander 2024-10-05 08:44 1776
    fmt::print("{answer:s}", "answer"_a=42);
47fd5c32 Poul Sander 2024-10-05 08:44 1777
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1778
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1779
47fd5c32 Poul Sander 2024-10-05 08:44 1780
  gives a compile-time error on compilers with C++20 `consteval` and
47fd5c32 Poul Sander 2024-10-05 08:44 1781
  non-type template parameter support (gcc 10+) because `s` is not a
47fd5c32 Poul Sander 2024-10-05 08:44 1782
  valid format specifier for an integer.
47fd5c32 Poul Sander 2024-10-05 08:44 1783
47fd5c32 Poul Sander 2024-10-05 08:44 1784
  Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 1785
47fd5c32 Poul Sander 2024-10-05 08:44 1786
- Implemented escaping of string range elements. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1787
  ([godbolt](https://godbolt.org/z/rKvM1vKf3)):
47fd5c32 Poul Sander 2024-10-05 08:44 1788
47fd5c32 Poul Sander 2024-10-05 08:44 1789
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1790
  #include <fmt/ranges.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1791
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 1792
47fd5c32 Poul Sander 2024-10-05 08:44 1793
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1794
    fmt::print("{}", std::vector<std::string>{"\naan"});
47fd5c32 Poul Sander 2024-10-05 08:44 1795
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1796
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1797
47fd5c32 Poul Sander 2024-10-05 08:44 1798
  is now printed as:
47fd5c32 Poul Sander 2024-10-05 08:44 1799
47fd5c32 Poul Sander 2024-10-05 08:44 1800
      ["\naan"]
47fd5c32 Poul Sander 2024-10-05 08:44 1801
47fd5c32 Poul Sander 2024-10-05 08:44 1802
  instead of:
47fd5c32 Poul Sander 2024-10-05 08:44 1803
47fd5c32 Poul Sander 2024-10-05 08:44 1804
      ["
47fd5c32 Poul Sander 2024-10-05 08:44 1805
      aan"]
47fd5c32 Poul Sander 2024-10-05 08:44 1806
47fd5c32 Poul Sander 2024-10-05 08:44 1807
- Added an experimental `?` specifier for escaping strings.
47fd5c32 Poul Sander 2024-10-05 08:44 1808
  (https://github.com/fmtlib/fmt/pull/2674). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1809
47fd5c32 Poul Sander 2024-10-05 08:44 1810
- Switched to JSON-like representation of maps and sets for
47fd5c32 Poul Sander 2024-10-05 08:44 1811
  consistency with Python\'s `str.format`. For example
47fd5c32 Poul Sander 2024-10-05 08:44 1812
  ([godbolt](https://godbolt.org/z/seKjoY9W5)):
47fd5c32 Poul Sander 2024-10-05 08:44 1813
47fd5c32 Poul Sander 2024-10-05 08:44 1814
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 1815
  #include <fmt/ranges.h>
47fd5c32 Poul Sander 2024-10-05 08:44 1816
  #include <map>
47fd5c32 Poul Sander 2024-10-05 08:44 1817
47fd5c32 Poul Sander 2024-10-05 08:44 1818
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 1819
    fmt::print("{}", std::map<std::string, int>{{"answer", 42}});
47fd5c32 Poul Sander 2024-10-05 08:44 1820
  }
47fd5c32 Poul Sander 2024-10-05 08:44 1821
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 1822
47fd5c32 Poul Sander 2024-10-05 08:44 1823
  is now printed as:
47fd5c32 Poul Sander 2024-10-05 08:44 1824
47fd5c32 Poul Sander 2024-10-05 08:44 1825
      {"answer": 42}
47fd5c32 Poul Sander 2024-10-05 08:44 1826
47fd5c32 Poul Sander 2024-10-05 08:44 1827
- Extended `fmt::join` to support C++20-only ranges
47fd5c32 Poul Sander 2024-10-05 08:44 1828
  (https://github.com/fmtlib/fmt/pull/2549). Thanks @BRevzin.
47fd5c32 Poul Sander 2024-10-05 08:44 1829
47fd5c32 Poul Sander 2024-10-05 08:44 1830
- Optimized handling of non-const-iterable ranges and implemented
47fd5c32 Poul Sander 2024-10-05 08:44 1831
  initial support for non-const-formattable types.
47fd5c32 Poul Sander 2024-10-05 08:44 1832
47fd5c32 Poul Sander 2024-10-05 08:44 1833
- Disabled implicit conversions of scoped enums to integers that was
47fd5c32 Poul Sander 2024-10-05 08:44 1834
  accidentally introduced in earlier versions
47fd5c32 Poul Sander 2024-10-05 08:44 1835
  (https://github.com/fmtlib/fmt/pull/1841).
47fd5c32 Poul Sander 2024-10-05 08:44 1836
47fd5c32 Poul Sander 2024-10-05 08:44 1837
- Deprecated implicit conversion of `[const] signed char*` and
47fd5c32 Poul Sander 2024-10-05 08:44 1838
  `[const] unsigned char*` to C strings.
47fd5c32 Poul Sander 2024-10-05 08:44 1839
47fd5c32 Poul Sander 2024-10-05 08:44 1840
- Deprecated `_format`, a legacy UDL-based format API
47fd5c32 Poul Sander 2024-10-05 08:44 1841
  (https://github.com/fmtlib/fmt/pull/2646). Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 1842
47fd5c32 Poul Sander 2024-10-05 08:44 1843
- Marked `format`, `formatted_size` and `to_string` as `[[nodiscard]]`
47fd5c32 Poul Sander 2024-10-05 08:44 1844
  (https://github.com/fmtlib/fmt/pull/2612). @0x8000-0000.
47fd5c32 Poul Sander 2024-10-05 08:44 1845
47fd5c32 Poul Sander 2024-10-05 08:44 1846
- Added missing diagnostic when trying to format function and member
47fd5c32 Poul Sander 2024-10-05 08:44 1847
  pointers as well as objects convertible to pointers which is
47fd5c32 Poul Sander 2024-10-05 08:44 1848
  explicitly disallowed
47fd5c32 Poul Sander 2024-10-05 08:44 1849
  (https://github.com/fmtlib/fmt/issues/2598,
47fd5c32 Poul Sander 2024-10-05 08:44 1850
  https://github.com/fmtlib/fmt/pull/2609,
47fd5c32 Poul Sander 2024-10-05 08:44 1851
  https://github.com/fmtlib/fmt/pull/2610). Thanks @AlexGuteniev.
47fd5c32 Poul Sander 2024-10-05 08:44 1852
47fd5c32 Poul Sander 2024-10-05 08:44 1853
- Optimized writing to a contiguous buffer with `format_to_n`
47fd5c32 Poul Sander 2024-10-05 08:44 1854
  (https://github.com/fmtlib/fmt/pull/2489). Thanks @Roman-Koshelev.
47fd5c32 Poul Sander 2024-10-05 08:44 1855
47fd5c32 Poul Sander 2024-10-05 08:44 1856
- Optimized writing to non-`char` buffers
47fd5c32 Poul Sander 2024-10-05 08:44 1857
  (https://github.com/fmtlib/fmt/pull/2477). Thanks @Roman-Koshelev.
47fd5c32 Poul Sander 2024-10-05 08:44 1858
47fd5c32 Poul Sander 2024-10-05 08:44 1859
- Decimal point is now localized when using the `L` specifier.
47fd5c32 Poul Sander 2024-10-05 08:44 1860
47fd5c32 Poul Sander 2024-10-05 08:44 1861
- Improved floating point formatter implementation
47fd5c32 Poul Sander 2024-10-05 08:44 1862
  (https://github.com/fmtlib/fmt/pull/2498,
47fd5c32 Poul Sander 2024-10-05 08:44 1863
  https://github.com/fmtlib/fmt/pull/2499). Thanks @Roman-Koshelev.
47fd5c32 Poul Sander 2024-10-05 08:44 1864
47fd5c32 Poul Sander 2024-10-05 08:44 1865
- Fixed handling of very large precision in fixed format
47fd5c32 Poul Sander 2024-10-05 08:44 1866
  (https://github.com/fmtlib/fmt/pull/2616).
47fd5c32 Poul Sander 2024-10-05 08:44 1867
47fd5c32 Poul Sander 2024-10-05 08:44 1868
- Made a table of cached powers used in FP formatting static
47fd5c32 Poul Sander 2024-10-05 08:44 1869
  (https://github.com/fmtlib/fmt/pull/2509). Thanks @jk-jeon.
47fd5c32 Poul Sander 2024-10-05 08:44 1870
47fd5c32 Poul Sander 2024-10-05 08:44 1871
- Resolved a lookup ambiguity with C++20 format-related functions due
47fd5c32 Poul Sander 2024-10-05 08:44 1872
  to ADL (https://github.com/fmtlib/fmt/issues/2639,
47fd5c32 Poul Sander 2024-10-05 08:44 1873
  https://github.com/fmtlib/fmt/pull/2641). Thanks @mkurdej.
47fd5c32 Poul Sander 2024-10-05 08:44 1874
47fd5c32 Poul Sander 2024-10-05 08:44 1875
- Removed unnecessary inline namespace qualification
47fd5c32 Poul Sander 2024-10-05 08:44 1876
  (https://github.com/fmtlib/fmt/issues/2642,
47fd5c32 Poul Sander 2024-10-05 08:44 1877
  https://github.com/fmtlib/fmt/pull/2643). Thanks @mkurdej.
47fd5c32 Poul Sander 2024-10-05 08:44 1878
47fd5c32 Poul Sander 2024-10-05 08:44 1879
- Implemented argument forwarding in `format_to_n`
47fd5c32 Poul Sander 2024-10-05 08:44 1880
  (https://github.com/fmtlib/fmt/issues/2462,
47fd5c32 Poul Sander 2024-10-05 08:44 1881
  https://github.com/fmtlib/fmt/pull/2463). Thanks @owent.
47fd5c32 Poul Sander 2024-10-05 08:44 1882
47fd5c32 Poul Sander 2024-10-05 08:44 1883
- Fixed handling of implicit conversions in `fmt::to_string` and
47fd5c32 Poul Sander 2024-10-05 08:44 1884
  format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 1885
  (https://github.com/fmtlib/fmt/issues/2565).
47fd5c32 Poul Sander 2024-10-05 08:44 1886
47fd5c32 Poul Sander 2024-10-05 08:44 1887
- Changed the default access mode of files created by
47fd5c32 Poul Sander 2024-10-05 08:44 1888
  `fmt::output_file` to `-rw-r--r--` for consistency with `fopen`
47fd5c32 Poul Sander 2024-10-05 08:44 1889
  (https://github.com/fmtlib/fmt/issues/2530).
47fd5c32 Poul Sander 2024-10-05 08:44 1890
47fd5c32 Poul Sander 2024-10-05 08:44 1891
- Make `fmt::ostream::flush` public
47fd5c32 Poul Sander 2024-10-05 08:44 1892
  (https://github.com/fmtlib/fmt/issues/2435).
47fd5c32 Poul Sander 2024-10-05 08:44 1893
47fd5c32 Poul Sander 2024-10-05 08:44 1894
- Improved C++14/17 attribute detection
47fd5c32 Poul Sander 2024-10-05 08:44 1895
  (https://github.com/fmtlib/fmt/pull/2615). Thanks @AlexGuteniev.
47fd5c32 Poul Sander 2024-10-05 08:44 1896
47fd5c32 Poul Sander 2024-10-05 08:44 1897
- Improved `consteval` detection for MSVC
47fd5c32 Poul Sander 2024-10-05 08:44 1898
  (https://github.com/fmtlib/fmt/pull/2559). Thanks @DanielaE.
47fd5c32 Poul Sander 2024-10-05 08:44 1899
47fd5c32 Poul Sander 2024-10-05 08:44 1900
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 1901
  (https://github.com/fmtlib/fmt/issues/2406,
47fd5c32 Poul Sander 2024-10-05 08:44 1902
  https://github.com/fmtlib/fmt/pull/2446,
47fd5c32 Poul Sander 2024-10-05 08:44 1903
  https://github.com/fmtlib/fmt/issues/2493,
47fd5c32 Poul Sander 2024-10-05 08:44 1904
  https://github.com/fmtlib/fmt/issues/2513,
47fd5c32 Poul Sander 2024-10-05 08:44 1905
  https://github.com/fmtlib/fmt/pull/2515,
47fd5c32 Poul Sander 2024-10-05 08:44 1906
  https://github.com/fmtlib/fmt/issues/2522,
47fd5c32 Poul Sander 2024-10-05 08:44 1907
  https://github.com/fmtlib/fmt/pull/2562,
47fd5c32 Poul Sander 2024-10-05 08:44 1908
  https://github.com/fmtlib/fmt/pull/2575,
47fd5c32 Poul Sander 2024-10-05 08:44 1909
  https://github.com/fmtlib/fmt/pull/2606,
47fd5c32 Poul Sander 2024-10-05 08:44 1910
  https://github.com/fmtlib/fmt/pull/2620,
47fd5c32 Poul Sander 2024-10-05 08:44 1911
  https://github.com/fmtlib/fmt/issues/2676).
47fd5c32 Poul Sander 2024-10-05 08:44 1912
  Thanks @sobolevn, @UnePierre, @zhsj, @phprus, @ericcurtin and @Lounarok.
47fd5c32 Poul Sander 2024-10-05 08:44 1913
47fd5c32 Poul Sander 2024-10-05 08:44 1914
- Improved fuzzers and added a fuzzer for chrono timepoint formatting
47fd5c32 Poul Sander 2024-10-05 08:44 1915
  (https://github.com/fmtlib/fmt/pull/2461,
47fd5c32 Poul Sander 2024-10-05 08:44 1916
  https://github.com/fmtlib/fmt/pull/2469). @pauldreik,
47fd5c32 Poul Sander 2024-10-05 08:44 1917
47fd5c32 Poul Sander 2024-10-05 08:44 1918
- Added the `FMT_SYSTEM_HEADERS` CMake option setting which marks
47fd5c32 Poul Sander 2024-10-05 08:44 1919
  {fmt}\'s headers as system. It can be used to suppress warnings
47fd5c32 Poul Sander 2024-10-05 08:44 1920
  (https://github.com/fmtlib/fmt/issues/2644,
47fd5c32 Poul Sander 2024-10-05 08:44 1921
  https://github.com/fmtlib/fmt/pull/2651). Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 1922
47fd5c32 Poul Sander 2024-10-05 08:44 1923
- Added the Bazel build system support
47fd5c32 Poul Sander 2024-10-05 08:44 1924
  (https://github.com/fmtlib/fmt/pull/2505,
47fd5c32 Poul Sander 2024-10-05 08:44 1925
  https://github.com/fmtlib/fmt/pull/2516). Thanks @Vertexwahn.
47fd5c32 Poul Sander 2024-10-05 08:44 1926
47fd5c32 Poul Sander 2024-10-05 08:44 1927
- Improved build configuration and tests
47fd5c32 Poul Sander 2024-10-05 08:44 1928
  (https://github.com/fmtlib/fmt/issues/2437,
47fd5c32 Poul Sander 2024-10-05 08:44 1929
  https://github.com/fmtlib/fmt/pull/2558,
47fd5c32 Poul Sander 2024-10-05 08:44 1930
  https://github.com/fmtlib/fmt/pull/2648,
47fd5c32 Poul Sander 2024-10-05 08:44 1931
  https://github.com/fmtlib/fmt/pull/2650,
47fd5c32 Poul Sander 2024-10-05 08:44 1932
  https://github.com/fmtlib/fmt/pull/2663,
47fd5c32 Poul Sander 2024-10-05 08:44 1933
  https://github.com/fmtlib/fmt/pull/2677).
47fd5c32 Poul Sander 2024-10-05 08:44 1934
  Thanks @DanielaE, @alexezeder and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 1935
47fd5c32 Poul Sander 2024-10-05 08:44 1936
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 1937
  (https://github.com/fmtlib/fmt/pull/2353,
47fd5c32 Poul Sander 2024-10-05 08:44 1938
  https://github.com/fmtlib/fmt/pull/2356,
47fd5c32 Poul Sander 2024-10-05 08:44 1939
  https://github.com/fmtlib/fmt/pull/2399,
47fd5c32 Poul Sander 2024-10-05 08:44 1940
  https://github.com/fmtlib/fmt/issues/2408,
47fd5c32 Poul Sander 2024-10-05 08:44 1941
  https://github.com/fmtlib/fmt/pull/2414,
47fd5c32 Poul Sander 2024-10-05 08:44 1942
  https://github.com/fmtlib/fmt/pull/2427,
47fd5c32 Poul Sander 2024-10-05 08:44 1943
  https://github.com/fmtlib/fmt/pull/2432,
47fd5c32 Poul Sander 2024-10-05 08:44 1944
  https://github.com/fmtlib/fmt/pull/2442,
47fd5c32 Poul Sander 2024-10-05 08:44 1945
  https://github.com/fmtlib/fmt/pull/2434,
47fd5c32 Poul Sander 2024-10-05 08:44 1946
  https://github.com/fmtlib/fmt/issues/2439,
47fd5c32 Poul Sander 2024-10-05 08:44 1947
  https://github.com/fmtlib/fmt/pull/2447,
47fd5c32 Poul Sander 2024-10-05 08:44 1948
  https://github.com/fmtlib/fmt/pull/2450,
47fd5c32 Poul Sander 2024-10-05 08:44 1949
  https://github.com/fmtlib/fmt/issues/2455,
47fd5c32 Poul Sander 2024-10-05 08:44 1950
  https://github.com/fmtlib/fmt/issues/2465,
47fd5c32 Poul Sander 2024-10-05 08:44 1951
  https://github.com/fmtlib/fmt/issues/2472,
47fd5c32 Poul Sander 2024-10-05 08:44 1952
  https://github.com/fmtlib/fmt/issues/2474,
47fd5c32 Poul Sander 2024-10-05 08:44 1953
  https://github.com/fmtlib/fmt/pull/2476,
47fd5c32 Poul Sander 2024-10-05 08:44 1954
  https://github.com/fmtlib/fmt/issues/2478,
47fd5c32 Poul Sander 2024-10-05 08:44 1955
  https://github.com/fmtlib/fmt/issues/2479,
47fd5c32 Poul Sander 2024-10-05 08:44 1956
  https://github.com/fmtlib/fmt/issues/2481,
47fd5c32 Poul Sander 2024-10-05 08:44 1957
  https://github.com/fmtlib/fmt/pull/2482,
47fd5c32 Poul Sander 2024-10-05 08:44 1958
  https://github.com/fmtlib/fmt/pull/2483,
47fd5c32 Poul Sander 2024-10-05 08:44 1959
  https://github.com/fmtlib/fmt/issues/2490,
47fd5c32 Poul Sander 2024-10-05 08:44 1960
  https://github.com/fmtlib/fmt/pull/2491,
47fd5c32 Poul Sander 2024-10-05 08:44 1961
  https://github.com/fmtlib/fmt/pull/2510,
47fd5c32 Poul Sander 2024-10-05 08:44 1962
  https://github.com/fmtlib/fmt/pull/2518,
47fd5c32 Poul Sander 2024-10-05 08:44 1963
  https://github.com/fmtlib/fmt/issues/2528,
47fd5c32 Poul Sander 2024-10-05 08:44 1964
  https://github.com/fmtlib/fmt/pull/2529,
47fd5c32 Poul Sander 2024-10-05 08:44 1965
  https://github.com/fmtlib/fmt/pull/2539,
47fd5c32 Poul Sander 2024-10-05 08:44 1966
  https://github.com/fmtlib/fmt/issues/2540,
47fd5c32 Poul Sander 2024-10-05 08:44 1967
  https://github.com/fmtlib/fmt/pull/2545,
47fd5c32 Poul Sander 2024-10-05 08:44 1968
  https://github.com/fmtlib/fmt/pull/2555,
47fd5c32 Poul Sander 2024-10-05 08:44 1969
  https://github.com/fmtlib/fmt/issues/2557,
47fd5c32 Poul Sander 2024-10-05 08:44 1970
  https://github.com/fmtlib/fmt/issues/2570,
47fd5c32 Poul Sander 2024-10-05 08:44 1971
  https://github.com/fmtlib/fmt/pull/2573,
47fd5c32 Poul Sander 2024-10-05 08:44 1972
  https://github.com/fmtlib/fmt/pull/2582,
47fd5c32 Poul Sander 2024-10-05 08:44 1973
  https://github.com/fmtlib/fmt/issues/2605,
47fd5c32 Poul Sander 2024-10-05 08:44 1974
  https://github.com/fmtlib/fmt/pull/2611,
47fd5c32 Poul Sander 2024-10-05 08:44 1975
  https://github.com/fmtlib/fmt/pull/2647,
47fd5c32 Poul Sander 2024-10-05 08:44 1976
  https://github.com/fmtlib/fmt/issues/2627,
47fd5c32 Poul Sander 2024-10-05 08:44 1977
  https://github.com/fmtlib/fmt/pull/2630,
47fd5c32 Poul Sander 2024-10-05 08:44 1978
  https://github.com/fmtlib/fmt/issues/2635,
47fd5c32 Poul Sander 2024-10-05 08:44 1979
  https://github.com/fmtlib/fmt/issues/2638,
47fd5c32 Poul Sander 2024-10-05 08:44 1980
  https://github.com/fmtlib/fmt/issues/2653,
47fd5c32 Poul Sander 2024-10-05 08:44 1981
  https://github.com/fmtlib/fmt/issues/2654,
47fd5c32 Poul Sander 2024-10-05 08:44 1982
  https://github.com/fmtlib/fmt/issues/2661,
47fd5c32 Poul Sander 2024-10-05 08:44 1983
  https://github.com/fmtlib/fmt/pull/2664,
47fd5c32 Poul Sander 2024-10-05 08:44 1984
  https://github.com/fmtlib/fmt/pull/2684).
47fd5c32 Poul Sander 2024-10-05 08:44 1985
  Thanks @DanielaE, @mwinterb, @cdacamar, @TrebledJ, @bodomartin, @cquammen,
47fd5c32 Poul Sander 2024-10-05 08:44 1986
  @white238, @mmarkeloff, @palacaze, @jcelerier, @mborn-adi, @BrukerJWD,
47fd5c32 Poul Sander 2024-10-05 08:44 1987
  @spyridon97, @phprus, @oliverlee, @joshessman-llnl, @akohlmey, @timkalu,
47fd5c32 Poul Sander 2024-10-05 08:44 1988
  @olupton, @Acretock, @alexezeder, @andrewcorrigan, @lucpelletier and
47fd5c32 Poul Sander 2024-10-05 08:44 1989
  @HazardyKnusperkeks.
47fd5c32 Poul Sander 2024-10-05 08:44 1990
47fd5c32 Poul Sander 2024-10-05 08:44 1991
# 8.0.1 - 2021-07-02
47fd5c32 Poul Sander 2024-10-05 08:44 1992
47fd5c32 Poul Sander 2024-10-05 08:44 1993
- Fixed the version number in the inline namespace
47fd5c32 Poul Sander 2024-10-05 08:44 1994
  (https://github.com/fmtlib/fmt/issues/2374).
47fd5c32 Poul Sander 2024-10-05 08:44 1995
- Added a missing presentation type check for `std::string`
47fd5c32 Poul Sander 2024-10-05 08:44 1996
  (https://github.com/fmtlib/fmt/issues/2402).
47fd5c32 Poul Sander 2024-10-05 08:44 1997
- Fixed a linkage error when mixing code built with clang and gcc
47fd5c32 Poul Sander 2024-10-05 08:44 1998
  (https://github.com/fmtlib/fmt/issues/2377).
47fd5c32 Poul Sander 2024-10-05 08:44 1999
- Fixed documentation issues
47fd5c32 Poul Sander 2024-10-05 08:44 2000
  (https://github.com/fmtlib/fmt/pull/2396,
47fd5c32 Poul Sander 2024-10-05 08:44 2001
  https://github.com/fmtlib/fmt/issues/2403,
47fd5c32 Poul Sander 2024-10-05 08:44 2002
  https://github.com/fmtlib/fmt/issues/2406). Thanks @mkurdej.
47fd5c32 Poul Sander 2024-10-05 08:44 2003
- Removed dead code in FP formatter (
47fd5c32 Poul Sander 2024-10-05 08:44 2004
  https://github.com/fmtlib/fmt/pull/2398). Thanks @javierhonduco.
47fd5c32 Poul Sander 2024-10-05 08:44 2005
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 2006
  (https://github.com/fmtlib/fmt/issues/2351,
47fd5c32 Poul Sander 2024-10-05 08:44 2007
  https://github.com/fmtlib/fmt/issues/2359,
47fd5c32 Poul Sander 2024-10-05 08:44 2008
  https://github.com/fmtlib/fmt/pull/2365,
47fd5c32 Poul Sander 2024-10-05 08:44 2009
  https://github.com/fmtlib/fmt/issues/2368,
47fd5c32 Poul Sander 2024-10-05 08:44 2010
  https://github.com/fmtlib/fmt/pull/2370,
47fd5c32 Poul Sander 2024-10-05 08:44 2011
  https://github.com/fmtlib/fmt/pull/2376,
47fd5c32 Poul Sander 2024-10-05 08:44 2012
  https://github.com/fmtlib/fmt/pull/2381,
47fd5c32 Poul Sander 2024-10-05 08:44 2013
  https://github.com/fmtlib/fmt/pull/2382,
47fd5c32 Poul Sander 2024-10-05 08:44 2014
  https://github.com/fmtlib/fmt/issues/2386,
47fd5c32 Poul Sander 2024-10-05 08:44 2015
  https://github.com/fmtlib/fmt/pull/2389,
47fd5c32 Poul Sander 2024-10-05 08:44 2016
  https://github.com/fmtlib/fmt/pull/2395,
47fd5c32 Poul Sander 2024-10-05 08:44 2017
  https://github.com/fmtlib/fmt/pull/2397,
47fd5c32 Poul Sander 2024-10-05 08:44 2018
  https://github.com/fmtlib/fmt/issues/2400,
47fd5c32 Poul Sander 2024-10-05 08:44 2019
  https://github.com/fmtlib/fmt/issues/2401,
47fd5c32 Poul Sander 2024-10-05 08:44 2020
  https://github.com/fmtlib/fmt/pull/2407).
47fd5c32 Poul Sander 2024-10-05 08:44 2021
  Thanks @zx2c4, @AidanSun05, @mattiasljungstrom, @joemmett, @erengy,
47fd5c32 Poul Sander 2024-10-05 08:44 2022
  @patlkli, @gsjaardema and @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2023
47fd5c32 Poul Sander 2024-10-05 08:44 2024
# 8.0.0 - 2021-06-21
47fd5c32 Poul Sander 2024-10-05 08:44 2025
47fd5c32 Poul Sander 2024-10-05 08:44 2026
- Enabled compile-time format string checks by default. For example
47fd5c32 Poul Sander 2024-10-05 08:44 2027
  ([godbolt](https://godbolt.org/z/sMxcohGjz)):
47fd5c32 Poul Sander 2024-10-05 08:44 2028
47fd5c32 Poul Sander 2024-10-05 08:44 2029
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2030
  #include <fmt/core.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2031
47fd5c32 Poul Sander 2024-10-05 08:44 2032
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2033
    fmt::print("{:d}", "I am not a number");
47fd5c32 Poul Sander 2024-10-05 08:44 2034
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2035
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2036
47fd5c32 Poul Sander 2024-10-05 08:44 2037
  gives a compile-time error on compilers with C++20 `consteval`
47fd5c32 Poul Sander 2024-10-05 08:44 2038
  support (gcc 10+, clang 11+) because `d` is not a valid format
47fd5c32 Poul Sander 2024-10-05 08:44 2039
  specifier for a string.
47fd5c32 Poul Sander 2024-10-05 08:44 2040
47fd5c32 Poul Sander 2024-10-05 08:44 2041
  To pass a runtime string wrap it in `fmt::runtime`:
47fd5c32 Poul Sander 2024-10-05 08:44 2042
47fd5c32 Poul Sander 2024-10-05 08:44 2043
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2044
  fmt::print(fmt::runtime("{:d}"), "I am not a number");
47fd5c32 Poul Sander 2024-10-05 08:44 2045
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2046
47fd5c32 Poul Sander 2024-10-05 08:44 2047
- Added compile-time formatting
47fd5c32 Poul Sander 2024-10-05 08:44 2048
  (https://github.com/fmtlib/fmt/pull/2019,
47fd5c32 Poul Sander 2024-10-05 08:44 2049
  https://github.com/fmtlib/fmt/pull/2044,
47fd5c32 Poul Sander 2024-10-05 08:44 2050
  https://github.com/fmtlib/fmt/pull/2056,
47fd5c32 Poul Sander 2024-10-05 08:44 2051
  https://github.com/fmtlib/fmt/pull/2072,
47fd5c32 Poul Sander 2024-10-05 08:44 2052
  https://github.com/fmtlib/fmt/pull/2075,
47fd5c32 Poul Sander 2024-10-05 08:44 2053
  https://github.com/fmtlib/fmt/issues/2078,
47fd5c32 Poul Sander 2024-10-05 08:44 2054
  https://github.com/fmtlib/fmt/pull/2129,
47fd5c32 Poul Sander 2024-10-05 08:44 2055
  https://github.com/fmtlib/fmt/pull/2326). For example
47fd5c32 Poul Sander 2024-10-05 08:44 2056
  ([godbolt](https://godbolt.org/z/Mxx9d89jM)):
47fd5c32 Poul Sander 2024-10-05 08:44 2057
47fd5c32 Poul Sander 2024-10-05 08:44 2058
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2059
  #include <fmt/compile.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2060
47fd5c32 Poul Sander 2024-10-05 08:44 2061
  consteval auto compile_time_itoa(int value) -> std::array<char, 10> {
47fd5c32 Poul Sander 2024-10-05 08:44 2062
    auto result = std::array<char, 10>();
47fd5c32 Poul Sander 2024-10-05 08:44 2063
    fmt::format_to(result.data(), FMT_COMPILE("{}"), value);
47fd5c32 Poul Sander 2024-10-05 08:44 2064
    return result;
47fd5c32 Poul Sander 2024-10-05 08:44 2065
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2066
47fd5c32 Poul Sander 2024-10-05 08:44 2067
  constexpr auto answer = compile_time_itoa(42);
47fd5c32 Poul Sander 2024-10-05 08:44 2068
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2069
47fd5c32 Poul Sander 2024-10-05 08:44 2070
  Most of the formatting functionality is available at compile time
47fd5c32 Poul Sander 2024-10-05 08:44 2071
  with a notable exception of floating-point numbers and pointers.
47fd5c32 Poul Sander 2024-10-05 08:44 2072
  Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2073
47fd5c32 Poul Sander 2024-10-05 08:44 2074
- Optimized handling of format specifiers during format string
47fd5c32 Poul Sander 2024-10-05 08:44 2075
  compilation. For example, hexadecimal formatting (`"{:x}"`) is now
47fd5c32 Poul Sander 2024-10-05 08:44 2076
  3-7x faster than before when using `format_to` with format string
47fd5c32 Poul Sander 2024-10-05 08:44 2077
  compilation and a stack-allocated buffer
47fd5c32 Poul Sander 2024-10-05 08:44 2078
  (https://github.com/fmtlib/fmt/issues/1944).
47fd5c32 Poul Sander 2024-10-05 08:44 2079
47fd5c32 Poul Sander 2024-10-05 08:44 2080
  Before (7.1.3):
47fd5c32 Poul Sander 2024-10-05 08:44 2081
47fd5c32 Poul Sander 2024-10-05 08:44 2082
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2083
      Benchmark                                  Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 2084
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2085
      FMTCompileOld/0                         15.5 ns         15.5 ns     43302898
47fd5c32 Poul Sander 2024-10-05 08:44 2086
      FMTCompileOld/42                        16.6 ns         16.6 ns     43278267
47fd5c32 Poul Sander 2024-10-05 08:44 2087
      FMTCompileOld/273123                    18.7 ns         18.6 ns     37035861
47fd5c32 Poul Sander 2024-10-05 08:44 2088
      FMTCompileOld/9223372036854775807       19.4 ns         19.4 ns     35243000
47fd5c32 Poul Sander 2024-10-05 08:44 2089
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2090
47fd5c32 Poul Sander 2024-10-05 08:44 2091
  After (8.x):
47fd5c32 Poul Sander 2024-10-05 08:44 2092
47fd5c32 Poul Sander 2024-10-05 08:44 2093
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2094
      Benchmark                                  Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 2095
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2096
      FMTCompileNew/0                         1.99 ns         1.99 ns    360523686
47fd5c32 Poul Sander 2024-10-05 08:44 2097
      FMTCompileNew/42                        2.33 ns         2.33 ns    279865664
47fd5c32 Poul Sander 2024-10-05 08:44 2098
      FMTCompileNew/273123                    3.72 ns         3.71 ns    190230315
47fd5c32 Poul Sander 2024-10-05 08:44 2099
      FMTCompileNew/9223372036854775807       5.28 ns         5.26 ns    130711631
47fd5c32 Poul Sander 2024-10-05 08:44 2100
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2101
47fd5c32 Poul Sander 2024-10-05 08:44 2102
  It is even faster than `std::to_chars` from libc++ compiled with
47fd5c32 Poul Sander 2024-10-05 08:44 2103
  clang on macOS:
47fd5c32 Poul Sander 2024-10-05 08:44 2104
47fd5c32 Poul Sander 2024-10-05 08:44 2105
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2106
      Benchmark                                  Time             CPU   Iterations
47fd5c32 Poul Sander 2024-10-05 08:44 2107
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2108
      ToChars/0                               4.42 ns         4.41 ns    160196630
47fd5c32 Poul Sander 2024-10-05 08:44 2109
      ToChars/42                              5.00 ns         4.98 ns    140735201
47fd5c32 Poul Sander 2024-10-05 08:44 2110
      ToChars/273123                          7.26 ns         7.24 ns     95784130
47fd5c32 Poul Sander 2024-10-05 08:44 2111
      ToChars/9223372036854775807             8.77 ns         8.75 ns     75872534
47fd5c32 Poul Sander 2024-10-05 08:44 2112
      ----------------------------------------------------------------------------
47fd5c32 Poul Sander 2024-10-05 08:44 2113
47fd5c32 Poul Sander 2024-10-05 08:44 2114
  In other cases, especially involving `std::string` construction, the
47fd5c32 Poul Sander 2024-10-05 08:44 2115
  speed up is usually lower because handling format specifiers takes a
47fd5c32 Poul Sander 2024-10-05 08:44 2116
  smaller fraction of the total time.
47fd5c32 Poul Sander 2024-10-05 08:44 2117
47fd5c32 Poul Sander 2024-10-05 08:44 2118
- Added the `_cf` user-defined literal to represent a compiled format
47fd5c32 Poul Sander 2024-10-05 08:44 2119
  string. It can be used instead of the `FMT_COMPILE` macro
47fd5c32 Poul Sander 2024-10-05 08:44 2120
  (https://github.com/fmtlib/fmt/pull/2043,
47fd5c32 Poul Sander 2024-10-05 08:44 2121
  https://github.com/fmtlib/fmt/pull/2242):
47fd5c32 Poul Sander 2024-10-05 08:44 2122
47fd5c32 Poul Sander 2024-10-05 08:44 2123
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2124
  #include <fmt/compile.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2125
47fd5c32 Poul Sander 2024-10-05 08:44 2126
  using namespace fmt::literals;
47fd5c32 Poul Sander 2024-10-05 08:44 2127
  auto s = fmt::format(FMT_COMPILE("{}"), 42); // 🙁 not modern
47fd5c32 Poul Sander 2024-10-05 08:44 2128
  auto s = fmt::format("{}"_cf, 42);           // 🙂 modern as hell
47fd5c32 Poul Sander 2024-10-05 08:44 2129
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2130
47fd5c32 Poul Sander 2024-10-05 08:44 2131
  It requires compiler support for class types in non-type template
47fd5c32 Poul Sander 2024-10-05 08:44 2132
  parameters (a C++20 feature) which is available in GCC 9.3+.
47fd5c32 Poul Sander 2024-10-05 08:44 2133
  Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2134
47fd5c32 Poul Sander 2024-10-05 08:44 2135
- Format string compilation now requires `format` functions of
47fd5c32 Poul Sander 2024-10-05 08:44 2136
  `formatter` specializations for user-defined types to be `const`:
47fd5c32 Poul Sander 2024-10-05 08:44 2137
47fd5c32 Poul Sander 2024-10-05 08:44 2138
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2139
  template <> struct fmt::formatter<my_type>: formatter<string_view> {
47fd5c32 Poul Sander 2024-10-05 08:44 2140
    template <typename FormatContext>
47fd5c32 Poul Sander 2024-10-05 08:44 2141
    auto format(my_type obj, FormatContext& ctx) const {  // Note const here.
47fd5c32 Poul Sander 2024-10-05 08:44 2142
      // ...
47fd5c32 Poul Sander 2024-10-05 08:44 2143
    }
47fd5c32 Poul Sander 2024-10-05 08:44 2144
  };
47fd5c32 Poul Sander 2024-10-05 08:44 2145
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2146
47fd5c32 Poul Sander 2024-10-05 08:44 2147
- Added UDL-based named argument support to format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 2148
  (https://github.com/fmtlib/fmt/pull/2243,
47fd5c32 Poul Sander 2024-10-05 08:44 2149
  https://github.com/fmtlib/fmt/pull/2281). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2150
47fd5c32 Poul Sander 2024-10-05 08:44 2151
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2152
  #include <fmt/compile.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2153
47fd5c32 Poul Sander 2024-10-05 08:44 2154
  using namespace fmt::literals;
47fd5c32 Poul Sander 2024-10-05 08:44 2155
  auto s = fmt::format(FMT_COMPILE("{answer}"), "answer"_a = 42);
47fd5c32 Poul Sander 2024-10-05 08:44 2156
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2157
47fd5c32 Poul Sander 2024-10-05 08:44 2158
  Here the argument named \"answer\" is resolved at compile time with
47fd5c32 Poul Sander 2024-10-05 08:44 2159
  no runtime overhead. Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2160
47fd5c32 Poul Sander 2024-10-05 08:44 2161
- Added format string compilation support to `fmt::print`
47fd5c32 Poul Sander 2024-10-05 08:44 2162
  (https://github.com/fmtlib/fmt/issues/2280,
47fd5c32 Poul Sander 2024-10-05 08:44 2163
  https://github.com/fmtlib/fmt/pull/2304). Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2164
47fd5c32 Poul Sander 2024-10-05 08:44 2165
- Added initial support for compiling {fmt} as a C++20 module
47fd5c32 Poul Sander 2024-10-05 08:44 2166
  (https://github.com/fmtlib/fmt/pull/2235,
47fd5c32 Poul Sander 2024-10-05 08:44 2167
  https://github.com/fmtlib/fmt/pull/2240,
47fd5c32 Poul Sander 2024-10-05 08:44 2168
  https://github.com/fmtlib/fmt/pull/2260,
47fd5c32 Poul Sander 2024-10-05 08:44 2169
  https://github.com/fmtlib/fmt/pull/2282,
47fd5c32 Poul Sander 2024-10-05 08:44 2170
  https://github.com/fmtlib/fmt/pull/2283,
47fd5c32 Poul Sander 2024-10-05 08:44 2171
  https://github.com/fmtlib/fmt/pull/2288,
47fd5c32 Poul Sander 2024-10-05 08:44 2172
  https://github.com/fmtlib/fmt/pull/2298,
47fd5c32 Poul Sander 2024-10-05 08:44 2173
  https://github.com/fmtlib/fmt/pull/2306,
47fd5c32 Poul Sander 2024-10-05 08:44 2174
  https://github.com/fmtlib/fmt/pull/2307,
47fd5c32 Poul Sander 2024-10-05 08:44 2175
  https://github.com/fmtlib/fmt/pull/2309,
47fd5c32 Poul Sander 2024-10-05 08:44 2176
  https://github.com/fmtlib/fmt/pull/2318,
47fd5c32 Poul Sander 2024-10-05 08:44 2177
  https://github.com/fmtlib/fmt/pull/2324,
47fd5c32 Poul Sander 2024-10-05 08:44 2178
  https://github.com/fmtlib/fmt/pull/2332,
47fd5c32 Poul Sander 2024-10-05 08:44 2179
  https://github.com/fmtlib/fmt/pull/2340). Thanks @DanielaE.
47fd5c32 Poul Sander 2024-10-05 08:44 2180
47fd5c32 Poul Sander 2024-10-05 08:44 2181
- Made symbols private by default reducing shared library size
47fd5c32 Poul Sander 2024-10-05 08:44 2182
  (https://github.com/fmtlib/fmt/pull/2301). For example
47fd5c32 Poul Sander 2024-10-05 08:44 2183
  there was a \~15% reported reduction on one platform. Thanks @sergiud.
47fd5c32 Poul Sander 2024-10-05 08:44 2184
47fd5c32 Poul Sander 2024-10-05 08:44 2185
- Optimized includes making the result of preprocessing `fmt/format.h`
47fd5c32 Poul Sander 2024-10-05 08:44 2186
  \~20% smaller with libstdc++/C++20 and slightly improving build
47fd5c32 Poul Sander 2024-10-05 08:44 2187
  times (https://github.com/fmtlib/fmt/issues/1998).
47fd5c32 Poul Sander 2024-10-05 08:44 2188
47fd5c32 Poul Sander 2024-10-05 08:44 2189
- Added support of ranges with non-const `begin` / `end`
47fd5c32 Poul Sander 2024-10-05 08:44 2190
  (https://github.com/fmtlib/fmt/pull/1953). Thanks @kitegi.
47fd5c32 Poul Sander 2024-10-05 08:44 2191
47fd5c32 Poul Sander 2024-10-05 08:44 2192
- Added support of `std::byte` and other formattable types to
47fd5c32 Poul Sander 2024-10-05 08:44 2193
  `fmt::join` (https://github.com/fmtlib/fmt/issues/1981,
47fd5c32 Poul Sander 2024-10-05 08:44 2194
  https://github.com/fmtlib/fmt/issues/2040,
47fd5c32 Poul Sander 2024-10-05 08:44 2195
  https://github.com/fmtlib/fmt/pull/2050,
47fd5c32 Poul Sander 2024-10-05 08:44 2196
  https://github.com/fmtlib/fmt/issues/2262). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2197
47fd5c32 Poul Sander 2024-10-05 08:44 2198
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2199
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2200
  #include <cstddef>
47fd5c32 Poul Sander 2024-10-05 08:44 2201
  #include <vector>
47fd5c32 Poul Sander 2024-10-05 08:44 2202
47fd5c32 Poul Sander 2024-10-05 08:44 2203
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2204
    auto bytes = std::vector{std::byte(4), std::byte(2)};
47fd5c32 Poul Sander 2024-10-05 08:44 2205
    fmt::print("{}", fmt::join(bytes, ""));
47fd5c32 Poul Sander 2024-10-05 08:44 2206
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2207
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2208
47fd5c32 Poul Sander 2024-10-05 08:44 2209
  prints \"42\".
47fd5c32 Poul Sander 2024-10-05 08:44 2210
47fd5c32 Poul Sander 2024-10-05 08:44 2211
  Thanks @kamibo.
47fd5c32 Poul Sander 2024-10-05 08:44 2212
47fd5c32 Poul Sander 2024-10-05 08:44 2213
- Implemented the default format for `std::chrono::system_clock`
47fd5c32 Poul Sander 2024-10-05 08:44 2214
  (https://github.com/fmtlib/fmt/issues/2319,
47fd5c32 Poul Sander 2024-10-05 08:44 2215
  https://github.com/fmtlib/fmt/pull/2345). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2216
47fd5c32 Poul Sander 2024-10-05 08:44 2217
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2218
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2219
47fd5c32 Poul Sander 2024-10-05 08:44 2220
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2221
    fmt::print("{}", std::chrono::system_clock::now());
47fd5c32 Poul Sander 2024-10-05 08:44 2222
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2223
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2224
47fd5c32 Poul Sander 2024-10-05 08:44 2225
  prints \"2021-06-18 15:22:00\" (the output depends on the current
47fd5c32 Poul Sander 2024-10-05 08:44 2226
  date and time). Thanks @sunmy2019.
47fd5c32 Poul Sander 2024-10-05 08:44 2227
47fd5c32 Poul Sander 2024-10-05 08:44 2228
- Made more chrono specifiers locale independent by default. Use the
47fd5c32 Poul Sander 2024-10-05 08:44 2229
  `'L'` specifier to get localized formatting. For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2230
47fd5c32 Poul Sander 2024-10-05 08:44 2231
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2232
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2233
47fd5c32 Poul Sander 2024-10-05 08:44 2234
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2235
    std::locale::global(std::locale("ru_RU.UTF-8"));
47fd5c32 Poul Sander 2024-10-05 08:44 2236
    auto monday = std::chrono::weekday(1);
47fd5c32 Poul Sander 2024-10-05 08:44 2237
    fmt::print("{}\n", monday);   // prints "Mon"
47fd5c32 Poul Sander 2024-10-05 08:44 2238
    fmt::print("{:L}\n", monday); // prints "пн"
47fd5c32 Poul Sander 2024-10-05 08:44 2239
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2240
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2241
47fd5c32 Poul Sander 2024-10-05 08:44 2242
- Improved locale handling in chrono formatting
47fd5c32 Poul Sander 2024-10-05 08:44 2243
  (https://github.com/fmtlib/fmt/issues/2337,
47fd5c32 Poul Sander 2024-10-05 08:44 2244
  https://github.com/fmtlib/fmt/pull/2349,
47fd5c32 Poul Sander 2024-10-05 08:44 2245
  https://github.com/fmtlib/fmt/pull/2350). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2246
47fd5c32 Poul Sander 2024-10-05 08:44 2247
- Deprecated `fmt/locale.h` moving the formatting functions that take
47fd5c32 Poul Sander 2024-10-05 08:44 2248
  a locale to `fmt/format.h` (`char`) and `fmt/xchar` (other
47fd5c32 Poul Sander 2024-10-05 08:44 2249
  overloads). This doesn\'t introduce a dependency on `<locale>` so
47fd5c32 Poul Sander 2024-10-05 08:44 2250
  there is virtually no compile time effect.
47fd5c32 Poul Sander 2024-10-05 08:44 2251
47fd5c32 Poul Sander 2024-10-05 08:44 2252
- Deprecated an undocumented `format_to` overload that takes
47fd5c32 Poul Sander 2024-10-05 08:44 2253
  `basic_memory_buffer`.
47fd5c32 Poul Sander 2024-10-05 08:44 2254
47fd5c32 Poul Sander 2024-10-05 08:44 2255
- Made parameter order in `vformat_to` consistent with `format_to`
47fd5c32 Poul Sander 2024-10-05 08:44 2256
  (https://github.com/fmtlib/fmt/issues/2327).
47fd5c32 Poul Sander 2024-10-05 08:44 2257
47fd5c32 Poul Sander 2024-10-05 08:44 2258
- Added support for time points with arbitrary durations
47fd5c32 Poul Sander 2024-10-05 08:44 2259
  (https://github.com/fmtlib/fmt/issues/2208). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2260
47fd5c32 Poul Sander 2024-10-05 08:44 2261
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2262
  #include <fmt/chrono.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2263
47fd5c32 Poul Sander 2024-10-05 08:44 2264
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2265
    using tp = std::chrono::time_point<
47fd5c32 Poul Sander 2024-10-05 08:44 2266
      std::chrono::system_clock, std::chrono::seconds>;
47fd5c32 Poul Sander 2024-10-05 08:44 2267
    fmt::print("{:%S}", tp(std::chrono::seconds(42)));
47fd5c32 Poul Sander 2024-10-05 08:44 2268
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2269
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2270
47fd5c32 Poul Sander 2024-10-05 08:44 2271
  prints \"42\".
47fd5c32 Poul Sander 2024-10-05 08:44 2272
47fd5c32 Poul Sander 2024-10-05 08:44 2273
- Formatting floating-point numbers no longer produces trailing zeros
47fd5c32 Poul Sander 2024-10-05 08:44 2274
  by default for consistency with `std::format`. For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2275
47fd5c32 Poul Sander 2024-10-05 08:44 2276
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2277
  #include <fmt/core.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2278
47fd5c32 Poul Sander 2024-10-05 08:44 2279
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2280
    fmt::print("{0:.3}", 1.1);
47fd5c32 Poul Sander 2024-10-05 08:44 2281
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2282
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2283
47fd5c32 Poul Sander 2024-10-05 08:44 2284
  prints \"1.1\". Use the `'#'` specifier to keep trailing zeros.
47fd5c32 Poul Sander 2024-10-05 08:44 2285
47fd5c32 Poul Sander 2024-10-05 08:44 2286
- Dropped a limit on the number of elements in a range and replaced
47fd5c32 Poul Sander 2024-10-05 08:44 2287
  `{}` with `[]` as range delimiters for consistency with Python\'s
47fd5c32 Poul Sander 2024-10-05 08:44 2288
  `str.format`.
47fd5c32 Poul Sander 2024-10-05 08:44 2289
47fd5c32 Poul Sander 2024-10-05 08:44 2290
- The `'L'` specifier for locale-specific numeric formatting can now
47fd5c32 Poul Sander 2024-10-05 08:44 2291
  be combined with presentation specifiers as in `std::format`. For
47fd5c32 Poul Sander 2024-10-05 08:44 2292
  example:
47fd5c32 Poul Sander 2024-10-05 08:44 2293
47fd5c32 Poul Sander 2024-10-05 08:44 2294
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2295
  #include <fmt/core.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2296
  #include <locale>
47fd5c32 Poul Sander 2024-10-05 08:44 2297
47fd5c32 Poul Sander 2024-10-05 08:44 2298
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2299
    std::locale::global(std::locale("fr_FR.UTF-8"));
47fd5c32 Poul Sander 2024-10-05 08:44 2300
    fmt::print("{0:.2Lf}", 0.42);
47fd5c32 Poul Sander 2024-10-05 08:44 2301
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2302
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2303
47fd5c32 Poul Sander 2024-10-05 08:44 2304
  prints \"0,42\". The deprecated `'n'` specifier has been removed.
47fd5c32 Poul Sander 2024-10-05 08:44 2305
47fd5c32 Poul Sander 2024-10-05 08:44 2306
- Made the `0` specifier ignored for infinity and NaN
47fd5c32 Poul Sander 2024-10-05 08:44 2307
  (https://github.com/fmtlib/fmt/issues/2305,
47fd5c32 Poul Sander 2024-10-05 08:44 2308
  https://github.com/fmtlib/fmt/pull/2310). Thanks @Liedtke.
47fd5c32 Poul Sander 2024-10-05 08:44 2309
47fd5c32 Poul Sander 2024-10-05 08:44 2310
- Made the hexfloat formatting use the right alignment by default
47fd5c32 Poul Sander 2024-10-05 08:44 2311
  (https://github.com/fmtlib/fmt/issues/2308,
47fd5c32 Poul Sander 2024-10-05 08:44 2312
  https://github.com/fmtlib/fmt/pull/2317). Thanks @Liedtke.
47fd5c32 Poul Sander 2024-10-05 08:44 2313
47fd5c32 Poul Sander 2024-10-05 08:44 2314
- Removed the deprecated numeric alignment (`'='`). Use the `'0'`
47fd5c32 Poul Sander 2024-10-05 08:44 2315
  specifier instead.
47fd5c32 Poul Sander 2024-10-05 08:44 2316
47fd5c32 Poul Sander 2024-10-05 08:44 2317
- Removed the deprecated `fmt/posix.h` header that has been replaced
47fd5c32 Poul Sander 2024-10-05 08:44 2318
  with `fmt/os.h`.
47fd5c32 Poul Sander 2024-10-05 08:44 2319
47fd5c32 Poul Sander 2024-10-05 08:44 2320
- Removed the deprecated `format_to_n_context`, `format_to_n_args` and
47fd5c32 Poul Sander 2024-10-05 08:44 2321
  `make_format_to_n_args`. They have been replaced with
47fd5c32 Poul Sander 2024-10-05 08:44 2322
  `format_context`, `` format_args` and ``make_format_args\`\`
47fd5c32 Poul Sander 2024-10-05 08:44 2323
  respectively.
47fd5c32 Poul Sander 2024-10-05 08:44 2324
47fd5c32 Poul Sander 2024-10-05 08:44 2325
- Moved `wchar_t`-specific functions and types to `fmt/xchar.h`. You
47fd5c32 Poul Sander 2024-10-05 08:44 2326
  can define `FMT_DEPRECATED_INCLUDE_XCHAR` to automatically include
47fd5c32 Poul Sander 2024-10-05 08:44 2327
  `fmt/xchar.h` from `fmt/format.h` but this will be disabled in the
47fd5c32 Poul Sander 2024-10-05 08:44 2328
  next major release.
47fd5c32 Poul Sander 2024-10-05 08:44 2329
47fd5c32 Poul Sander 2024-10-05 08:44 2330
- Fixed handling of the `'+'` specifier in localized formatting
47fd5c32 Poul Sander 2024-10-05 08:44 2331
  (https://github.com/fmtlib/fmt/issues/2133).
47fd5c32 Poul Sander 2024-10-05 08:44 2332
47fd5c32 Poul Sander 2024-10-05 08:44 2333
- Added support for the `'s'` format specifier that gives textual
47fd5c32 Poul Sander 2024-10-05 08:44 2334
  representation of `bool`
47fd5c32 Poul Sander 2024-10-05 08:44 2335
  (https://github.com/fmtlib/fmt/issues/2094,
47fd5c32 Poul Sander 2024-10-05 08:44 2336
  https://github.com/fmtlib/fmt/pull/2109). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2337
47fd5c32 Poul Sander 2024-10-05 08:44 2338
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2339
  #include <fmt/core.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2340
47fd5c32 Poul Sander 2024-10-05 08:44 2341
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2342
    fmt::print("{:s}", true);
47fd5c32 Poul Sander 2024-10-05 08:44 2343
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2344
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2345
47fd5c32 Poul Sander 2024-10-05 08:44 2346
  prints \"true\". Thanks @powercoderlol.
47fd5c32 Poul Sander 2024-10-05 08:44 2347
47fd5c32 Poul Sander 2024-10-05 08:44 2348
- Made `fmt::ptr` work with function pointers
47fd5c32 Poul Sander 2024-10-05 08:44 2349
  (https://github.com/fmtlib/fmt/pull/2131). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2350
47fd5c32 Poul Sander 2024-10-05 08:44 2351
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2352
  #include <fmt/format.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2353
47fd5c32 Poul Sander 2024-10-05 08:44 2354
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2355
    fmt::print("My main: {}\n", fmt::ptr(main));
47fd5c32 Poul Sander 2024-10-05 08:44 2356
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2357
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2358
47fd5c32 Poul Sander 2024-10-05 08:44 2359
  Thanks @mikecrowe.
47fd5c32 Poul Sander 2024-10-05 08:44 2360
47fd5c32 Poul Sander 2024-10-05 08:44 2361
- The undocumented support for specializing `formatter` for pointer
47fd5c32 Poul Sander 2024-10-05 08:44 2362
  types has been removed.
47fd5c32 Poul Sander 2024-10-05 08:44 2363
47fd5c32 Poul Sander 2024-10-05 08:44 2364
- Fixed `fmt::formatted_size` with format string compilation
47fd5c32 Poul Sander 2024-10-05 08:44 2365
  (https://github.com/fmtlib/fmt/pull/2141,
47fd5c32 Poul Sander 2024-10-05 08:44 2366
  https://github.com/fmtlib/fmt/pull/2161). Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2367
47fd5c32 Poul Sander 2024-10-05 08:44 2368
- Fixed handling of empty format strings during format string
47fd5c32 Poul Sander 2024-10-05 08:44 2369
  compilation (https://github.com/fmtlib/fmt/issues/2042):
47fd5c32 Poul Sander 2024-10-05 08:44 2370
47fd5c32 Poul Sander 2024-10-05 08:44 2371
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2372
  auto s = fmt::format(FMT_COMPILE(""));
47fd5c32 Poul Sander 2024-10-05 08:44 2373
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2374
47fd5c32 Poul Sander 2024-10-05 08:44 2375
  Thanks @alexezeder.
47fd5c32 Poul Sander 2024-10-05 08:44 2376
47fd5c32 Poul Sander 2024-10-05 08:44 2377
- Fixed handling of enums in `fmt::to_string`
47fd5c32 Poul Sander 2024-10-05 08:44 2378
  (https://github.com/fmtlib/fmt/issues/2036).
47fd5c32 Poul Sander 2024-10-05 08:44 2379
47fd5c32 Poul Sander 2024-10-05 08:44 2380
- Improved width computation
47fd5c32 Poul Sander 2024-10-05 08:44 2381
  (https://github.com/fmtlib/fmt/issues/2033,
47fd5c32 Poul Sander 2024-10-05 08:44 2382
  https://github.com/fmtlib/fmt/issues/2091). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2383
47fd5c32 Poul Sander 2024-10-05 08:44 2384
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2385
  #include <fmt/core.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2386
47fd5c32 Poul Sander 2024-10-05 08:44 2387
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2388
    fmt::print("{:-<10}{}\n", "你好", "世界");
47fd5c32 Poul Sander 2024-10-05 08:44 2389
    fmt::print("{:-<10}{}\n", "hello", "world");
47fd5c32 Poul Sander 2024-10-05 08:44 2390
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2391
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2392
47fd5c32 Poul Sander 2024-10-05 08:44 2393
  prints
47fd5c32 Poul Sander 2024-10-05 08:44 2394
47fd5c32 Poul Sander 2024-10-05 08:44 2395
  ![](https://user-images.githubusercontent.com/576385/119840373-cea3ca80-beb9-11eb-91e0-54266c48e181.png)
47fd5c32 Poul Sander 2024-10-05 08:44 2396
47fd5c32 Poul Sander 2024-10-05 08:44 2397
  on a modern terminal.
47fd5c32 Poul Sander 2024-10-05 08:44 2398
47fd5c32 Poul Sander 2024-10-05 08:44 2399
- The experimental fast output stream (`fmt::ostream`) is now
47fd5c32 Poul Sander 2024-10-05 08:44 2400
  truncated by default for consistency with `fopen`
47fd5c32 Poul Sander 2024-10-05 08:44 2401
  (https://github.com/fmtlib/fmt/issues/2018). For example:
47fd5c32 Poul Sander 2024-10-05 08:44 2402
47fd5c32 Poul Sander 2024-10-05 08:44 2403
  ```c++
47fd5c32 Poul Sander 2024-10-05 08:44 2404
  #include <fmt/os.h>
47fd5c32 Poul Sander 2024-10-05 08:44 2405
47fd5c32 Poul Sander 2024-10-05 08:44 2406
  int main() {
47fd5c32 Poul Sander 2024-10-05 08:44 2407
    fmt::ostream out1 = fmt::output_file("guide");
47fd5c32 Poul Sander 2024-10-05 08:44 2408
    out1.print("Zaphod");
47fd5c32 Poul Sander 2024-10-05 08:44 2409
    out1.close();
47fd5c32 Poul Sander 2024-10-05 08:44 2410
    fmt::ostream out2 = fmt::output_file("guide");
47fd5c32 Poul Sander 2024-10-05 08:44 2411
    out2.print("Ford");
47fd5c32 Poul Sander 2024-10-05 08:44 2412
  }
47fd5c32 Poul Sander 2024-10-05 08:44 2413
  ```
47fd5c32 Poul Sander 2024-10-05 08:44 2414
47fd5c32 Poul Sander 2024-10-05 08:44 2415
  writes \"Ford\" to the file \"guide\". To preserve the old file
47fd5c32 Poul Sander 2024-10-05 08:44 2416
  content if any pass `fmt::file::WRONLY | fmt::file::CREATE` flags to
47fd5c32 Poul Sander 2024-10-05 08:44 2417
  `fmt::output_file`.
47fd5c32 Poul Sander 2024-10-05 08:44 2418
47fd5c32 Poul Sander 2024-10-05 08:44 2419
- Fixed moving of `fmt::ostream` that holds buffered data
47fd5c32 Poul Sander 2024-10-05 08:44 2420
  (https://github.com/fmtlib/fmt/issues/2197,
47fd5c32 Poul Sander 2024-10-05 08:44 2421
  https://github.com/fmtlib/fmt/pull/2198). Thanks @vtta.
47fd5c32 Poul Sander 2024-10-05 08:44 2422
47fd5c32 Poul Sander 2024-10-05 08:44 2423
- Replaced the `fmt::system_error` exception with a function of the
47fd5c32 Poul Sander 2024-10-05 08:44 2424
  same name that constructs `std::system_error`
47fd5c32 Poul Sander 2024-10-05 08:44 2425
  (https://github.com/fmtlib/fmt/issues/2266).
47fd5c32 Poul Sander 2024-10-05 08:44 2426
47fd5c32 Poul Sander 2024-10-05 08:44 2427
- Replaced the `fmt::windows_error` exception with a function of the
47fd5c32 Poul Sander 2024-10-05 08:44 2428
  same name that constructs `std::system_error` with the category
47fd5c32 Poul Sander 2024-10-05 08:44 2429
  returned by `fmt::system_category()`
47fd5c32 Poul Sander 2024-10-05 08:44 2430
  (https://github.com/fmtlib/fmt/issues/2274,
47fd5c32 Poul Sander 2024-10-05 08:44 2431
  https://github.com/fmtlib/fmt/pull/2275). The latter is
47fd5c32 Poul Sander 2024-10-05 08:44 2432
  similar to `std::system_category` but correctly handles UTF-8.
47fd5c32 Poul Sander 2024-10-05 08:44 2433
  Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2434
47fd5c32 Poul Sander 2024-10-05 08:44 2435
- Replaced `fmt::error_code` with `std::error_code` and made it
47fd5c32 Poul Sander 2024-10-05 08:44 2436
  formattable (https://github.com/fmtlib/fmt/issues/2269,
47fd5c32 Poul Sander 2024-10-05 08:44 2437
  https://github.com/fmtlib/fmt/pull/2270,
47fd5c32 Poul Sander 2024-10-05 08:44 2438
  https://github.com/fmtlib/fmt/pull/2273). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2439
47fd5c32 Poul Sander 2024-10-05 08:44 2440
- Added speech synthesis support
47fd5c32 Poul Sander 2024-10-05 08:44 2441
  (https://github.com/fmtlib/fmt/pull/2206).
47fd5c32 Poul Sander 2024-10-05 08:44 2442
47fd5c32 Poul Sander 2024-10-05 08:44 2443
- Made `format_to` work with a memory buffer that has a custom
47fd5c32 Poul Sander 2024-10-05 08:44 2444
  allocator (https://github.com/fmtlib/fmt/pull/2300).
47fd5c32 Poul Sander 2024-10-05 08:44 2445
  Thanks @voxmea.
47fd5c32 Poul Sander 2024-10-05 08:44 2446
47fd5c32 Poul Sander 2024-10-05 08:44 2447
- Added `Allocator::max_size` support to `basic_memory_buffer`.
47fd5c32 Poul Sander 2024-10-05 08:44 2448
  (https://github.com/fmtlib/fmt/pull/1960). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2449
47fd5c32 Poul Sander 2024-10-05 08:44 2450
- Added wide string support to `fmt::join`
47fd5c32 Poul Sander 2024-10-05 08:44 2451
  (https://github.com/fmtlib/fmt/pull/2236). Thanks @crbrz.
47fd5c32 Poul Sander 2024-10-05 08:44 2452
47fd5c32 Poul Sander 2024-10-05 08:44 2453
- Made iterators passed to `formatter` specializations via a format
47fd5c32 Poul Sander 2024-10-05 08:44 2454
  context satisfy C++20 `std::output_iterator` requirements
47fd5c32 Poul Sander 2024-10-05 08:44 2455
  (https://github.com/fmtlib/fmt/issues/2156,
47fd5c32 Poul Sander 2024-10-05 08:44 2456
  https://github.com/fmtlib/fmt/pull/2158,
47fd5c32 Poul Sander 2024-10-05 08:44 2457
  https://github.com/fmtlib/fmt/issues/2195,
47fd5c32 Poul Sander 2024-10-05 08:44 2458
  https://github.com/fmtlib/fmt/pull/2204). Thanks @randomnetcat.
47fd5c32 Poul Sander 2024-10-05 08:44 2459
47fd5c32 Poul Sander 2024-10-05 08:44 2460
- Optimized the `printf` implementation
47fd5c32 Poul Sander 2024-10-05 08:44 2461
  (https://github.com/fmtlib/fmt/pull/1982,
47fd5c32 Poul Sander 2024-10-05 08:44 2462
  https://github.com/fmtlib/fmt/pull/1984,
47fd5c32 Poul Sander 2024-10-05 08:44 2463
  https://github.com/fmtlib/fmt/pull/2016,
47fd5c32 Poul Sander 2024-10-05 08:44 2464
  https://github.com/fmtlib/fmt/pull/2164).
47fd5c32 Poul Sander 2024-10-05 08:44 2465
  Thanks @rimathia and @moiwi.
47fd5c32 Poul Sander 2024-10-05 08:44 2466
47fd5c32 Poul Sander 2024-10-05 08:44 2467
- Improved detection of `constexpr` `char_traits`
47fd5c32 Poul Sander 2024-10-05 08:44 2468
  (https://github.com/fmtlib/fmt/pull/2246,
47fd5c32 Poul Sander 2024-10-05 08:44 2469
  https://github.com/fmtlib/fmt/pull/2257). Thanks @phprus.
47fd5c32 Poul Sander 2024-10-05 08:44 2470
47fd5c32 Poul Sander 2024-10-05 08:44 2471
- Fixed writing to `stdout` when it is redirected to `NUL` on Windows
47fd5c32 Poul Sander 2024-10-05 08:44 2472
  (https://github.com/fmtlib/fmt/issues/2080).
47fd5c32 Poul Sander 2024-10-05 08:44 2473
47fd5c32 Poul Sander 2024-10-05 08:44 2474
- Fixed exception propagation from iterators
47fd5c32 Poul Sander 2024-10-05 08:44 2475
  (https://github.com/fmtlib/fmt/issues/2097).
47fd5c32 Poul Sander 2024-10-05 08:44 2476
47fd5c32 Poul Sander 2024-10-05 08:44 2477
- Improved `strftime` error handling
47fd5c32 Poul Sander 2024-10-05 08:44 2478
  (https://github.com/fmtlib/fmt/issues/2238,
47fd5c32 Poul Sander 2024-10-05 08:44 2479
  https://github.com/fmtlib/fmt/pull/2244). Thanks @yumeyao.
47fd5c32 Poul Sander 2024-10-05 08:44 2480
47fd5c32 Poul Sander 2024-10-05 08:44 2481
- Stopped using deprecated GCC UDL template extension.
47fd5c32 Poul Sander 2024-10-05 08:44 2482
47fd5c32 Poul Sander 2024-10-05 08:44 2483
- Added `fmt/args.h` to the install target
47fd5c32 Poul Sander 2024-10-05 08:44 2484
  (https://github.com/fmtlib/fmt/issues/2096).
47fd5c32 Poul Sander 2024-10-05 08:44 2485
47fd5c32 Poul Sander 2024-10-05 08:44 2486
- Error messages are now passed to assert when exceptions are disabled
47fd5c32 Poul Sander 2024-10-05 08:44 2487
  (https://github.com/fmtlib/fmt/pull/2145). Thanks @NobodyXu.
47fd5c32 Poul Sander 2024-10-05 08:44 2488
47fd5c32 Poul Sander 2024-10-05 08:44 2489
- Added the `FMT_MASTER_PROJECT` CMake option to control build and
47fd5c32 Poul Sander 2024-10-05 08:44 2490
  install targets when {fmt} is included via `add_subdirectory`
47fd5c32 Poul Sander 2024-10-05 08:44 2491
  (https://github.com/fmtlib/fmt/issues/2098,
47fd5c32 Poul Sander 2024-10-05 08:44 2492
  https://github.com/fmtlib/fmt/pull/2100).
47fd5c32 Poul Sander 2024-10-05 08:44 2493
  Thanks @randomizedthinking.
47fd5c32 Poul Sander 2024-10-05 08:44 2494
47fd5c32 Poul Sander 2024-10-05 08:44 2495
- Improved build configuration
47fd5c32 Poul Sander 2024-10-05 08:44 2496
  (https://github.com/fmtlib/fmt/pull/2026,
47fd5c32 Poul Sander 2024-10-05 08:44 2497
  https://github.com/fmtlib/fmt/pull/2122).
47fd5c32 Poul Sander 2024-10-05 08:44 2498
  Thanks @luncliff and @ibaned.
47fd5c32 Poul Sander 2024-10-05 08:44 2499
47fd5c32 Poul Sander 2024-10-05 08:44 2500
- Fixed various warnings and compilation issues
47fd5c32 Poul Sander 2024-10-05 08:44 2501
  (https://github.com/fmtlib/fmt/issues/1947,
47fd5c32 Poul Sander 2024-10-05 08:44 2502
  https://github.com/fmtlib/fmt/pull/1959,
47fd5c32 Poul Sander 2024-10-05 08:44 2503
  https://github.com/fmtlib/fmt/pull/1963,
47fd5c32 Poul Sander 2024-10-05 08:44 2504
  https://github.com/fmtlib/fmt/pull/1965,
47fd5c32 Poul Sander 2024-10-05 08:44 2505
  https://github.com/fmtlib/fmt/issues/1966,
47fd5c32 Poul Sander 2024-10-05 08:44 2506
  https://github.com/fmtlib/fmt/pull/1974,
47fd5c32 Poul Sander 2024-10-05 08:44 2507
  https://github.com/fmtlib/fmt/pull/1975,
47fd5c32 Poul Sander 2024-10-05 08:44 2508
  https://github.com/fmtlib/fmt/pull/1990,
47fd5c32 Poul Sander 2024-10-05 08:44 2509
  https://github.com/fmtlib/fmt/issues/2000,
47fd5c32 Poul Sander 2024-10-05 08:44 2510
  https://github.com/fmtlib/fmt/pull/2001,
47fd5c32 Poul Sander 2024-10-05 08:44 2511
  https://github.com/fmtlib/fmt/issues/2002,
47fd5c32 Poul Sander 2024-10-05 08:44 2512
  https://github.com/fmtlib/fmt/issues/2004,
47fd5c32 Poul Sander 2024-10-05 08:44 2513
  https://github.com/fmtlib/fmt/pull/2006,
47fd5c32 Poul Sander 2024-10-05 08:44 2514
  https://github.com/fmtlib/fmt/pull/2009,
47fd5c32 Poul Sander 2024-10-05 08:44 2515
  https://github.com/fmtlib/fmt/pull/2010,
47fd5c32 Poul Sander 2024-10-05 08:44 2516
  https://github.com/fmtlib/fmt/issues/2038,
47fd5c32 Poul Sander 2024-10-05 08:44 2517
  https://github.com/fmtlib/fmt/issues/2039,
47fd5c32 Poul Sander 2024-10-05 08:44 2518
  https://github.com/fmtlib/fmt/issues/2047,
47fd5c32 Poul Sander 2024-10-05 08:44 2519
  https://github.com/fmtlib/fmt/pull/2053,
47fd5c32 Poul Sander 2024-10-05 08:44 2520
  https://github.com/fmtlib/fmt/issues/2059,
47fd5c32 Poul Sander 2024-10-05 08:44 2521
  https://github.com/fmtlib/fmt/pull/2065,
47fd5c32 Poul Sander 2024-10-05 08:44 2522
  https://github.com/fmtlib/fmt/pull/2067,
47fd5c32 Poul Sander 2024-10-05 08:44 2523
  https://github.com/fmtlib/fmt/pull/2068,
47fd5c32 Poul Sander 2024-10-05 08:44 2524
  https://github.com/fmtlib/fmt/pull/2073,
47fd5c32 Poul Sander 2024-10-05 08:44 2525
  https://github.com/fmtlib/fmt/issues/2103,
47fd5c32 Poul Sander 2024-10-05 08:44 2526
  https://github.com/fmtlib/fmt/issues/2105,
47fd5c32 Poul Sander 2024-10-05 08:44 2527
  https://github.com/fmtlib/fmt/pull/2106,
47fd5c32 Poul Sander 2024-10-05 08:44 2528
  https://github.com/fmtlib/fmt/pull/2107,
47fd5c32 Poul Sander 2024-10-05 08:44 2529
  https://github.com/fmtlib/fmt/issues/2116,
47fd5c32 Poul Sander 2024-10-05 08:44 2530
  https://github.com/fmtlib/fmt/pull/2117,
47fd5c32 Poul Sander 2024-10-05 08:44 2531
  https://github.com/fmtlib/fmt/issues/2118,
47fd5c32 Poul Sander 2024-10-05 08:44 2532
  https://github.com/fmtlib/fmt/pull/2119,
47fd5c32 Poul Sander 2024-10-05 08:44 2533
  https://github.com/fmtlib/fmt/issues/2127,
47fd5c32 Poul Sander 2024-10-05 08:44 2534
  https://github.com/fmtlib/fmt/pull/2128,
47fd5c32 Poul Sander 2024-10-05 08:44 2535
  https://github.com/fmtlib/fmt/issues/2140,
47fd5c32 Poul Sander 2024-10-05 08:44 2536
  https://github.com/fmtlib/fmt/issues/2142,
47fd5c32 Poul Sander 2024-10-05 08:44 2537
  https://github.com/fmtlib/fmt/pull/2143,
47fd5c32 Poul Sander 2024-10-05 08:44 2538
  https://github.com/fmtlib/fmt/pull/2144,
47fd5c32 Poul Sander 2024-10-05 08:44 2539
  https://github.com/fmtlib/fmt/issues/2147,
47fd5c32 Poul Sander 2024-10-05 08:44 2540
  https://github.com/fmtlib/fmt/issues/2148,
47fd5c32 Poul Sander 2024-10-05 08:44 2541
  https://github.com/fmtlib/fmt/issues/2149,
47fd5c32 Poul Sander 2024-10-05 08:44 2542
  https://github.com/fmtlib/fmt/pull/2152,
47fd5c32 Poul Sander 2024-10-05 08:44 2543
  https://github.com/fmtlib/fmt/pull/2160,
47fd5c32 Poul Sander 2024-10-05 08:44 2544
  https://github.com/fmtlib/fmt/issues/2170,
47fd5c32 Poul Sander 2024-10-05 08:44 2545
  https://github.com/fmtlib/fmt/issues/2175,
47fd5c32 Poul Sander 2024-10-05 08:44 2546
  https://github.com/fmtlib/fmt/issues/2176,
47fd5c32 Poul Sander 2024-10-05 08:44 2547
  https://github.com/fmtlib/fmt/pull/2177,
47fd5c32 Poul Sander 2024-10-05 08:44 2548
  https://github.com/fmtlib/fmt/issues/2178,
47fd5c32 Poul Sander 2024-10-05 08:44 2549
  https://github.com/fmtlib/fmt/pull/2179,
47fd5c32 Poul Sander 2024-10-05 08:44 2550
  https://github.com/fmtlib/fmt/issues/2180,
47fd5c32 Poul Sander 2024-10-05 08:44 2551
  https://github.com/fmtlib/fmt/issues/2181,
47fd5c32 Poul Sander 2024-10-05 08:44 2552
  https://github.com/fmtlib/fmt/pull/2183,
47fd5c32 Poul Sander 2024-10-05 08:44 2553
  https://github.com/fmtlib/fmt/issues/2184,
47fd5c32 Poul Sander 2024-10-05 08:44 2554
  https://github.com/fmtlib/fmt/issues/2185,
47fd5c32 Poul Sander 2024-10-05 08:44 2555
  https://github.com/fmtlib/fmt/pull/2186,
47fd5c32 Poul Sander 2024-10-05 08:44 2556
  https://github.com/fmtlib/fmt/pull/2187,
47fd5c32 Poul Sander 2024-10-05 08:44 2557
  https://github.com/fmtlib/fmt/pull/2190,
47fd5c32 Poul Sander 2024-10-05 08:44 2558
  https://github.com/fmtlib/fmt/pull/2192,
47fd5c32 Poul Sander 2024-10-05 08:44 2559
  https://github.com/fmtlib/fmt/pull/2194,
47fd5c32 Poul Sander 2024-10-05 08:44 2560
  https://github.com/fmtlib/fmt/pull/2205,
47fd5c32 Poul Sander 2024-10-05 08:44 2561
  https://github.com/fmtlib/fmt/issues/2210,
47fd5c32 Poul Sander 2024-10-05 08:44 2562
  https://github.com/fmtlib/fmt/pull/2211,
47fd5c32 Poul Sander 2024-10-05 08:44 2563
  https://github.com/fmtlib/fmt/pull/2215,
47fd5c32 Poul Sander 2024-10-05 08:44 2564
  https://github.com/fmtlib/fmt/pull/2216,
47fd5c32 Poul Sander 2024-10-05 08:44 2565
  https://github.com/fmtlib/fmt/pull/2218,
47fd5c32 Poul Sander 2024-10-05 08:44 2566
  https://github.com/fmtlib/fmt/pull/2220,
47fd5c32 Poul Sander 2024-10-05 08:44 2567
  https://github.com/fmtlib/fmt/issues/2228,
47fd5c32 Poul Sander 2024-10-05 08:44 2568
  https://github.com/fmtlib/fmt/pull/2229,
47fd5c32 Poul Sander 2024-10-05 08:44 2569
  https://github.com/fmtlib/fmt/pull/2230,
47fd5c32 Poul Sander 2024-10-05 08:44 2570
  https://github.com/fmtlib/fmt/issues/2233,
47fd5c32 Poul Sander 2024-10-05 08:44 2571
  https://github.com/fmtlib/fmt/pull/2239,
47fd5c32 Poul Sander 2024-10-05 08:44 2572
  https://github.com/fmtlib/fmt/issues/2248,
47fd5c32 Poul Sander 2024-10-05 08:44 2573
  https://github.com/fmtlib/fmt/issues/2252,
47fd5c32 Poul Sander 2024-10-05 08:44 2574
  https://github.com/fmtlib/fmt/pull/2253,
47fd5c32 Poul Sander 2024-10-05 08:44 2575
  https://github.com/fmtlib/fmt/pull/2255,
47fd5c32 Poul Sander 2024-10-05 08:44 2576
  https://github.com/fmtlib/fmt/issues/2261,
47fd5c32 Poul Sander 2024-10-05 08:44 2577
  https://github.com/fmtlib/fmt/issues/2278,
47fd5c32 Poul Sander 2024-10-05 08:44 2578
  https://github.com/fmtlib/fmt/issues/2284,
47fd5c32 Poul Sander 2024-10-05 08:44 2579
  https://github.com/fmtlib/fmt/pull/2287,
47fd5c32 Poul Sander 2024-10-05 08:44 2580
  https://github.com/fmtlib/fmt/pull/2289,
47fd5c32 Poul Sander 2024-10-05 08:44 2581
  https://github.com/fmtlib/fmt/pull/2290,
47fd5c32 Poul Sander 2024-10-05 08:44 2582
  https://github.com/fmtlib/fmt/pull/2293,
47fd5c32 Poul Sander 2024-10-05 08:44 2583
  https://github.com/fmtlib/fmt/issues/2295,
47fd5c32 Poul Sander 2024-10-05 08:44 2584
  https://github.com/fmtlib/fmt/pull/2296,
47fd5c32 Poul Sander 2024-10-05 08:44 2585
  https://github.com/fmtlib/fmt/pull/2297,
47fd5c32 Poul Sander 2024-10-05 08:44 2586
  https://github.com/fmtlib/fmt/issues/2311,
47fd5c32 Poul Sander 2024-10-05 08:44 2587
  https://github.com/fmtlib/fmt/pull/2313,
47fd5c32 Poul Sander 2024-10-05 08:44 2588
  https://github.com/fmtlib/fmt/pull/2315,
47fd5c32 Poul Sander 2024-10-05 08:44 2589
  https://github.com/fmtlib/fmt/issues/2320,
47fd5c32 Poul Sander 2024-10-05 08:44 2590
  https://github.com/fmtlib/fmt/pull/2321,
47fd5c32 Poul Sander 2024-10-05 08:44 2591
  https://github.com/fmtlib/fmt/pull/2323,
47fd5c32 Poul Sander 2024-10-05 08:44 2592
  https://github.com/fmtlib/fmt/issues/2328,
47fd5c32 Poul Sander 2024-10-05 08:44 2593
  https://github.com/fmtlib/fmt/pull/2329,
47fd5c32 Poul Sander 2024-10-05 08:44 2594
  https://github.com/fmtlib/fmt/pull/2333,
47fd5c32 Poul Sander 2024-10-05 08:44 2595
  https://github.com/fmtlib/fmt/pull/2338,
47fd5c32 Poul Sander 2024-10-05 08:44 2596
  https://github.com/fmtlib/fmt/pull/2341).
47fd5c32 Poul Sander 2024-10-05 08:44 2597
  Thanks @darklukee, @fagg, @killerbot242, @jgopel, @yeswalrus, @Finkman,
47fd5c32 Poul Sander 2024-10-05 08:44 2598
  @HazardyKnusperkeks, @dkavolis, @concatime, @chronoxor, @summivox, @yNeo,
47fd5c32 Poul Sander 2024-10-05 08:44 2599
  @Apache-HB, @alexezeder, @toojays, @Brainy0207, @vadz, @imsherlock, @phprus,
47fd5c32 Poul Sander 2024-10-05 08:44 2600
  @white238, @yafshar, @BillyDonahue, @jstaahl, @denchat, @DanielaE,
47fd5c32 Poul Sander 2024-10-05 08:44 2601
  @ilyakurdyukov, @ilmai, @JessyDL, @sergiud, @mwinterb, @sven-herrmann,
47fd5c32 Poul Sander 2024-10-05 08:44 2602
  @jmelas, @twoixter, @crbrz and @upsj.
47fd5c32 Poul Sander 2024-10-05 08:44 2603
47fd5c32 Poul Sander 2024-10-05 08:44 2604
- Improved documentation
47fd5c32 Poul Sander 2024-10-05 08:44 2605
  (https://github.com/fmtlib/fmt/issues/1986,
47fd5c32 Poul Sander 2024-10-05 08:44 2606
  https://github.com/fmtlib/fmt/pull/2051,
47fd5c32 Poul Sander 2024-10-05 08:44 2607
  https://github.com/fmtlib/fmt/issues/2057,
47fd5c32 Poul Sander 2024-10-05 08:44 2608
  https://github.com/fmtlib/fmt/pull/2081,
47fd5c32 Poul Sander 2024-10-05 08:44 2609
  https://github.com/fmtlib/fmt/issues/2084,
47fd5c32 Poul Sander 2024-10-05 08:44 2610
  https://github.com/fmtlib/fmt/pull/2312).
47fd5c32 Poul Sander 2024-10-05 08:44 2611
  Thanks @imba-tjd, @0x416c69 and @mordante.
47fd5c32 Poul Sander 2024-10-05 08:44 2612
47fd5c32 Poul Sander 2024-10-05 08:44 2613
- Continuous integration and test improvements
47fd5c32 Poul Sander 2024-10-05 08:44 2614
  (https://github.com/fmtlib/fmt/issues/1969,
47fd5c32 Poul Sander 2024-10-05 08:44 2615
  https://github.com/fmtlib/fmt/pull/1991,
47fd5c32 Poul Sander 2024-10-05 08:44 2616
  https://github.com/fmtlib/fmt/pull/2020,
47fd5c32 Poul Sander 2024-10-05 08:44 2617
  https://github.com/fmtlib/fmt/pull/2110,
47fd5c32 Poul Sander 2024-10-05 08:44 2618
  https://github.com/fmtlib/fmt/pull/2114,
47fd5c32 Poul Sander 2024-10-05 08:44 2619
  https://github.com/fmtlib/fmt/issues/2196,
47fd5c32 Poul Sander 2024-10-05 08:44 2620
  https://github.com/fmtlib/fmt/pull/2217,
47fd5c32 Poul Sander 2024-10-05 08:44 2621
  https://github.com/fmtlib/fmt/pull/2247,
47fd5c32 Poul Sander 2024-10-05 08:44 2622
  https://github.com/fmtlib/fmt/pull/2256,
47fd5c32 Poul Sander 2024-10-05 08:44 2623
  https://github.com/fmtlib/fmt/pull/2336,
47fd5c32 Poul Sander 2024-10-05 08:44 2624
  https://github.com/fmtlib/fmt/pull/2346).
47fd5c32 Poul Sander 2024-10-05 08:44 2625
  Thanks @jgopel, @alexezeder and @DanielaE.
47fd5c32 Poul Sander 2024-10-05 08:44 2626
47fd5c32 Poul Sander 2024-10-05 08:44 2627
The change log for versions 0.8.0 - 7.1.3 is available [here](
47fd5c32 Poul Sander 2024-10-05 08:44 2628
doc/ChangeLog-old.md).
1970-01-01 00:00 2629