| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1 |
# 7.1.3 - 2020-11-24 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3 |
- Fixed handling of buffer boundaries in `format_to_n` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
4 |
(https://github.com/fmtlib/fmt/issues/1996, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
5 |
https://github.com/fmtlib/fmt/issues/2029). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
6 |
- Fixed linkage errors when linking with a shared library |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
7 |
(https://github.com/fmtlib/fmt/issues/2011). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
8 |
- Reintroduced ostream support to range formatters |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
9 |
(https://github.com/fmtlib/fmt/issues/2014). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
10 |
- Worked around an issue with mixing std versions in gcc |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
11 |
(https://github.com/fmtlib/fmt/issues/2017). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
12 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
13 |
# 7.1.2 - 2020-11-04 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
14 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
15 |
- Fixed floating point formatting with large precision |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
16 |
(https://github.com/fmtlib/fmt/issues/1976). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
17 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
18 |
# 7.1.1 - 2020-11-01 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
19 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
20 |
- Fixed ABI compatibility with 7.0.x |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
21 |
(https://github.com/fmtlib/fmt/issues/1961). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
22 |
- Added the `FMT_ARM_ABI_COMPATIBILITY` macro to work around ABI |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
23 |
incompatibility between GCC and Clang on ARM |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
24 |
(https://github.com/fmtlib/fmt/issues/1919). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
25 |
- Worked around a SFINAE bug in GCC 8 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
26 |
(https://github.com/fmtlib/fmt/issues/1957). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
27 |
- Fixed linkage errors when building with GCC\'s LTO |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
28 |
(https://github.com/fmtlib/fmt/issues/1955). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
29 |
- Fixed a compilation error when building without `__builtin_clz` or |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
30 |
equivalent (https://github.com/fmtlib/fmt/pull/1968). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
31 |
Thanks @tohammer. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
32 |
- Fixed a sign conversion warning |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
33 |
(https://github.com/fmtlib/fmt/pull/1964). Thanks @OptoCloud. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
34 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
35 |
# 7.1.0 - 2020-10-25 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
36 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
37 |
- Switched from |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
38 |
[Grisu3](https://www.cs.tufts.edu/~nr/cs257/archive/florian-loitsch/printf.pdf) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
39 |
to [Dragonbox](https://github.com/jk-jeon/dragonbox) for the default |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
40 |
floating-point formatting which gives the shortest decimal |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
41 |
representation with round-trip guarantee and correct rounding |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
42 |
(https://github.com/fmtlib/fmt/pull/1882, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
43 |
https://github.com/fmtlib/fmt/pull/1887, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
44 |
https://github.com/fmtlib/fmt/pull/1894). This makes {fmt} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
45 |
up to 20-30x faster than common implementations of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
46 |
`std::ostringstream` and `sprintf` on |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
47 |
[dtoa-benchmark](https://github.com/fmtlib/dtoa-benchmark) and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
48 |
faster than double-conversion and Ryƫ: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
49 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
50 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
51 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
52 |
It is possible to get even better performance at the cost of larger |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
53 |
binary size by compiling with the `FMT_USE_FULL_CACHE_DRAGONBOX` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
54 |
macro set to 1. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
55 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
56 |
Thanks @jk-jeon. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
57 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
58 |
- Added an experimental unsynchronized file output API which, together |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
59 |
with [format string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
60 |
compilation](https://fmt.dev/latest/api.html#compile-api), can give |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
61 |
[5-9 times speed up compared to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
62 |
fprintf](https://www.zverovich.net/2020/08/04/optimal-file-buffer-size.html) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
63 |
on common platforms ([godbolt](https://godbolt.org/z/nsTcG8)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
64 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
65 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
66 |
#include <fmt/os.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
67 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
68 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
69 |
auto f = fmt::output_file("guide"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
70 |
f.print("The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
71 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
72 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
73 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
74 |
- Added a formatter for `std::chrono::time_point<system_clock>` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
75 |
(https://github.com/fmtlib/fmt/issues/1819, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
76 |
https://github.com/fmtlib/fmt/pull/1837). For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
77 |
([godbolt](https://godbolt.org/z/c4M6fh)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
78 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
79 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
80 |
#include <fmt/chrono.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
81 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
82 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
83 |
auto now = std::chrono::system_clock::now(); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
84 |
fmt::print("The time is {:%H:%M:%S}.\n", now); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
85 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
86 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
87 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
88 |
Thanks @adamburgess. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
89 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
90 |
- Added support for ranges with non-const `begin`/`end` to `fmt::join` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
91 |
(https://github.com/fmtlib/fmt/issues/1784, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
92 |
https://github.com/fmtlib/fmt/pull/1786). For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
93 |
([godbolt](https://godbolt.org/z/jP63Tv)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
94 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
95 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
96 |
#include <fmt/ranges.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
97 |
#include <range/v3/view/filter.hpp> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
98 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
99 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
100 |
using std::literals::string_literals::operator""s; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
101 |
auto strs = std::array{"a"s, "bb"s, "ccc"s}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
102 |
auto range = strs | ranges::views::filter( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
103 |
[] (const std::string &x) { return x.size() != 2; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
104 |
); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
105 |
fmt::print("{}\n", fmt::join(range, "")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
106 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
107 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
108 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
109 |
prints \"accc\". |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
110 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
111 |
Thanks @tonyelewis. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
112 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
113 |
- Added a `memory_buffer::append` overload that takes a range |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
114 |
(https://github.com/fmtlib/fmt/pull/1806). Thanks @BRevzin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
115 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
116 |
- Improved handling of single code units in `FMT_COMPILE`. For |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
117 |
example: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
118 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
119 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
120 |
#include <fmt/compile.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
121 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
122 |
char* f(char* buf) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
123 |
return fmt::format_to(buf, FMT_COMPILE("x{}"), 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
124 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
125 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
126 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
127 |
compiles to just ([godbolt](https://godbolt.org/z/5vncz3)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
128 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
129 |
```asm |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
130 |
_Z1fPc: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
131 |
movb $120, (%rdi) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
132 |
xorl %edx, %edx |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
133 |
cmpl $42, _ZN3fmt2v76detail10basic_dataIvE23zero_or_powers_of_10_32E+8(%rip) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
134 |
movl $3, %eax |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
135 |
seta %dl |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
136 |
subl %edx, %eax |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
137 |
movzwl _ZN3fmt2v76detail10basic_dataIvE6digitsE+84(%rip), %edx |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
138 |
cltq |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
139 |
addq %rdi, %rax |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
140 |
movw %dx, -2(%rax) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
141 |
ret |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
142 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
143 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
144 |
Here a single `mov` instruction writes `'x'` (`$120`) to the output |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
145 |
buffer. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
146 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
147 |
- Added dynamic width support to format string compilation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
148 |
(https://github.com/fmtlib/fmt/issues/1809). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
149 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
150 |
- Improved error reporting for unformattable types: now you\'ll get |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
151 |
the type name directly in the error message instead of the note: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
152 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
153 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
154 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
155 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
156 |
struct how_about_no {}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
157 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
158 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
159 |
fmt::print("{}", how_about_no()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
160 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
161 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
162 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
163 |
Error ([godbolt](https://godbolt.org/z/GoxM4e)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
164 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
165 |
`fmt/core.h:1438:3: error: static_assert failed due to requirement 'fmt::v7::formattable<how_about_no>()' "Cannot format an argument. To make type T formattable provide a formatter<T> specialization: https://fmt.dev/latest/api.html#udt" ...` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
166 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
167 |
- Added the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
168 |
[make_args_checked](https://fmt.dev/7.1.0/api.html#argument-lists) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
169 |
function template that allows you to write formatting functions with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
170 |
compile-time format string checks and avoid binary code bloat |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
171 |
([godbolt](https://godbolt.org/z/PEf9qr)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
172 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
173 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
174 |
void vlog(const char* file, int line, fmt::string_view format, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
175 |
fmt::format_args args) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
176 |
fmt::print("{}: {}: ", file, line); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
177 |
fmt::vprint(format, args); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
178 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
179 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
180 |
template <typename S, typename... Args> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
181 |
void log(const char* file, int line, const S& format, Args&&... args) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
182 |
vlog(file, line, format, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
183 |
fmt::make_args_checked<Args...>(format, args...)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
184 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
185 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
186 |
#define MY_LOG(format, ...) \ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
187 |
log(__FILE__, __LINE__, FMT_STRING(format), __VA_ARGS__) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
188 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
189 |
MY_LOG("invalid squishiness: {}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
190 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
191 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
192 |
- Replaced `snprintf` fallback with a faster internal IEEE 754 `float` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
193 |
and `double` formatter for arbitrary precision. For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
194 |
([godbolt](https://godbolt.org/z/dPhWvj)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
195 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
196 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
197 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
198 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
199 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
200 |
fmt::print("{:.500}\n", 4.9406564584124654E-324); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
201 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
202 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
203 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
204 |
prints |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
205 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
206 |
`4.9406564584124654417656879286822137236505980261432476442558568250067550727020875186529983636163599237979656469544571773092665671035593979639877479601078187812630071319031140452784581716784898210368871863605699873072305000638740915356498438731247339727316961514003171538539807412623856559117102665855668676818703956031062493194527159149245532930545654440112748012970999954193198940908041656332452475714786901472678015935523861155013480352649347201937902681071074917033322268447533357208324319360923829e-324`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
207 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
208 |
- Made `format_to_n` and `formatted_size` part of the [core |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
209 |
API](https://fmt.dev/latest/api.html#core-api) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
210 |
([godbolt](https://godbolt.org/z/sPjY1K)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
211 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
212 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
213 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
214 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
215 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
216 |
char buffer[10]; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
217 |
auto result = fmt::format_to_n(buffer, sizeof(buffer), "{}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
218 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
219 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
220 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
221 |
- Added `fmt::format_to_n` overload with format string compilation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
222 |
(https://github.com/fmtlib/fmt/issues/1764, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
223 |
https://github.com/fmtlib/fmt/pull/1767, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
224 |
https://github.com/fmtlib/fmt/pull/1869). For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
225 |
([godbolt](https://godbolt.org/z/93h86q)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
226 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
227 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
228 |
#include <fmt/compile.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
229 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
230 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
231 |
char buffer[8]; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
232 |
fmt::format_to_n(buffer, sizeof(buffer), FMT_COMPILE("{}"), 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
233 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
234 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
235 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
236 |
Thanks @Kurkin and @alexezeder. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
237 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
238 |
- Added `fmt::format_to` overload that take `text_style` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
239 |
(https://github.com/fmtlib/fmt/issues/1593, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
240 |
https://github.com/fmtlib/fmt/issues/1842, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
241 |
https://github.com/fmtlib/fmt/pull/1843). For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
242 |
([godbolt](https://godbolt.org/z/91153r)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
243 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
244 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
245 |
#include <fmt/color.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
246 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
247 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
248 |
std::string out; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
249 |
fmt::format_to(std::back_inserter(out), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
250 |
fmt::emphasis::bold | fg(fmt::color::red), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
251 |
"The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
252 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
253 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
254 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
255 |
Thanks @Naios. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
256 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
257 |
- Made the `'#'` specifier emit trailing zeros in addition to the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
258 |
decimal point (https://github.com/fmtlib/fmt/issues/1797). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
259 |
For example ([godbolt](https://godbolt.org/z/bhdcW9)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
260 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
261 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
262 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
263 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
264 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
265 |
fmt::print("{:#.2g}", 0.5); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
266 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
267 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
268 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
269 |
prints `0.50`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
270 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
271 |
- Changed the default floating point format to not include `.0` for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
272 |
consistency with `std::format` and `std::to_chars` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
273 |
(https://github.com/fmtlib/fmt/issues/1893, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
274 |
https://github.com/fmtlib/fmt/issues/1943). It is possible |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
275 |
to get the decimal point and trailing zero with the `#` specifier. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
276 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
277 |
- Fixed an issue with floating-point formatting that could result in |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
278 |
addition of a non-significant trailing zero in rare cases e.g. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
279 |
`1.00e-34` instead of `1.0e-34` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
280 |
(https://github.com/fmtlib/fmt/issues/1873, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
281 |
https://github.com/fmtlib/fmt/issues/1917). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
282 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
283 |
- Made `fmt::to_string` fallback on `ostream` insertion operator if |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
284 |
the `formatter` specialization is not provided |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
285 |
(https://github.com/fmtlib/fmt/issues/1815, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
286 |
https://github.com/fmtlib/fmt/pull/1829). Thanks @alexezeder. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
287 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
288 |
- Added support for the append mode to the experimental file API and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
289 |
improved `fcntl.h` detection. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
290 |
(https://github.com/fmtlib/fmt/pull/1847, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
291 |
https://github.com/fmtlib/fmt/pull/1848). Thanks @t-wiser. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
292 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
293 |
- Fixed handling of types that have both an implicit conversion |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
294 |
operator and an overloaded `ostream` insertion operator |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
295 |
(https://github.com/fmtlib/fmt/issues/1766). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
296 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
297 |
- Fixed a slicing issue in an internal iterator type |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
298 |
(https://github.com/fmtlib/fmt/pull/1822). Thanks @BRevzin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
299 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
300 |
- Fixed an issue in locale-specific integer formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
301 |
(https://github.com/fmtlib/fmt/issues/1927). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
302 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
303 |
- Fixed handling of exotic code unit types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
304 |
(https://github.com/fmtlib/fmt/issues/1870, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
305 |
https://github.com/fmtlib/fmt/issues/1932). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
306 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
307 |
- Improved `FMT_ALWAYS_INLINE` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
308 |
(https://github.com/fmtlib/fmt/pull/1878). Thanks @jk-jeon. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
309 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
310 |
- Removed dependency on `windows.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
311 |
(https://github.com/fmtlib/fmt/pull/1900). Thanks @bernd5. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
312 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
313 |
- Optimized counting of decimal digits on MSVC |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
314 |
(https://github.com/fmtlib/fmt/pull/1890). Thanks @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
315 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
316 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
317 |
(https://github.com/fmtlib/fmt/issues/1772, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
318 |
https://github.com/fmtlib/fmt/pull/1775, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
319 |
https://github.com/fmtlib/fmt/pull/1792, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
320 |
https://github.com/fmtlib/fmt/pull/1838, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
321 |
https://github.com/fmtlib/fmt/pull/1888, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
322 |
https://github.com/fmtlib/fmt/pull/1918, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
323 |
https://github.com/fmtlib/fmt/pull/1939). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
324 |
Thanks @leolchat, @pepsiman, @Klaim, @ravijanjam, @francesco-st and @udnaan. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
325 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
326 |
- Added the `FMT_REDUCE_INT_INSTANTIATIONS` CMake option that reduces |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
327 |
the binary code size at the cost of some integer formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
328 |
performance. This can be useful for extremely memory-constrained |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
329 |
embedded systems |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
330 |
(https://github.com/fmtlib/fmt/issues/1778, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
331 |
https://github.com/fmtlib/fmt/pull/1781). Thanks @kammce. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
332 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
333 |
- Added the `FMT_USE_INLINE_NAMESPACES` macro to control usage of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
334 |
inline namespaces |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
335 |
(https://github.com/fmtlib/fmt/pull/1945). Thanks @darklukee. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
336 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
337 |
- Improved build configuration |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
338 |
(https://github.com/fmtlib/fmt/pull/1760, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
339 |
https://github.com/fmtlib/fmt/pull/1770, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
340 |
https://github.com/fmtlib/fmt/issues/1779, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
341 |
https://github.com/fmtlib/fmt/pull/1783, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
342 |
https://github.com/fmtlib/fmt/pull/1823). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
343 |
Thanks @dvetutnev, @xvitaly, @tambry, @medithe and @martinwuehrer. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
344 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
345 |
- Fixed various warnings and compilation issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
346 |
(https://github.com/fmtlib/fmt/pull/1790, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
347 |
https://github.com/fmtlib/fmt/pull/1802, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
348 |
https://github.com/fmtlib/fmt/pull/1808, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
349 |
https://github.com/fmtlib/fmt/issues/1810, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
350 |
https://github.com/fmtlib/fmt/issues/1811, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
351 |
https://github.com/fmtlib/fmt/pull/1812, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
352 |
https://github.com/fmtlib/fmt/pull/1814, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
353 |
https://github.com/fmtlib/fmt/pull/1816, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
354 |
https://github.com/fmtlib/fmt/pull/1817, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
355 |
https://github.com/fmtlib/fmt/pull/1818, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
356 |
https://github.com/fmtlib/fmt/issues/1825, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
357 |
https://github.com/fmtlib/fmt/pull/1836, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
358 |
https://github.com/fmtlib/fmt/pull/1855, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
359 |
https://github.com/fmtlib/fmt/pull/1856, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
360 |
https://github.com/fmtlib/fmt/pull/1860, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
361 |
https://github.com/fmtlib/fmt/pull/1877, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
362 |
https://github.com/fmtlib/fmt/pull/1879, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
363 |
https://github.com/fmtlib/fmt/pull/1880, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
364 |
https://github.com/fmtlib/fmt/issues/1896, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
365 |
https://github.com/fmtlib/fmt/pull/1897, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
366 |
https://github.com/fmtlib/fmt/pull/1898, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
367 |
https://github.com/fmtlib/fmt/issues/1904, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
368 |
https://github.com/fmtlib/fmt/pull/1908, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
369 |
https://github.com/fmtlib/fmt/issues/1911, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
370 |
https://github.com/fmtlib/fmt/issues/1912, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
371 |
https://github.com/fmtlib/fmt/issues/1928, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
372 |
https://github.com/fmtlib/fmt/pull/1929, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
373 |
https://github.com/fmtlib/fmt/issues/1935, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
374 |
https://github.com/fmtlib/fmt/pull/1937, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
375 |
https://github.com/fmtlib/fmt/pull/1942, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
376 |
https://github.com/fmtlib/fmt/issues/1949). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
377 |
Thanks @TheQwertiest, @medithe, @martinwuehrer, @n16h7hunt3r, @Othereum, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
378 |
@gsjaardema, @AlexanderLanin, @gcerretani, @chronoxor, @noizefloor, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
379 |
@akohlmey, @jk-jeon, @rimathia, @rglarix, @moiwi, @heckad, @MarcDirven. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
380 |
@BartSiwek and @darklukee. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
381 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
382 |
# 7.0.3 - 2020-08-06 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
383 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
384 |
- Worked around broken `numeric_limits` for 128-bit integers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
385 |
(https://github.com/fmtlib/fmt/issues/1787). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
386 |
- Added error reporting on missing named arguments |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
387 |
(https://github.com/fmtlib/fmt/issues/1796). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
388 |
- Stopped using 128-bit integers with clang-cl |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
389 |
(https://github.com/fmtlib/fmt/pull/1800). Thanks @Kingcom. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
390 |
- Fixed issues in locale-specific integer formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
391 |
(https://github.com/fmtlib/fmt/issues/1782, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
392 |
https://github.com/fmtlib/fmt/issues/1801). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
393 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
394 |
# 7.0.2 - 2020-07-29 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
395 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
396 |
- Worked around broken `numeric_limits` for 128-bit integers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
397 |
(https://github.com/fmtlib/fmt/issues/1725). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
398 |
- Fixed compatibility with CMake 3.4 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
399 |
(https://github.com/fmtlib/fmt/issues/1779). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
400 |
- Fixed handling of digit separators in locale-specific formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
401 |
(https://github.com/fmtlib/fmt/issues/1782). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
402 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
403 |
# 7.0.1 - 2020-07-07 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
404 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
405 |
- Updated the inline version namespace name. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
406 |
- Worked around a gcc bug in mangling of alias templates |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
407 |
(https://github.com/fmtlib/fmt/issues/1753). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
408 |
- Fixed a linkage error on Windows |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
409 |
(https://github.com/fmtlib/fmt/issues/1757). Thanks @Kurkin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
410 |
- Fixed minor issues with the documentation. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
411 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
412 |
# 7.0.0 - 2020-07-05 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
413 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
414 |
- Reduced the library size. For example, on macOS a stripped test |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
415 |
binary statically linked with {fmt} [shrank from \~368k to less than |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
416 |
100k](http://www.zverovich.net/2020/05/21/reducing-library-size.html). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
417 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
418 |
- Added a simpler and more efficient [format string compilation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
419 |
API](https://fmt.dev/7.0.0/api.html#compile-api): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
420 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
421 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
422 |
#include <fmt/compile.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
423 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
424 |
// Converts 42 into std::string using the most efficient method and no |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
425 |
// runtime format string processing. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
426 |
std::string s = fmt::format(FMT_COMPILE("{}"), 42); |
| 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 |
The old `fmt::compile` API is now deprecated. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
430 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
431 |
- Optimized integer formatting: `format_to` with format string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
432 |
compilation and a stack-allocated buffer is now [faster than |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
433 |
to_chars on both libc++ and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
434 |
libstdc++](http://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
435 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
436 |
- Optimized handling of small format strings. For example, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
437 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
438 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
439 |
fmt::format("Result: {}: ({},{},{},{})", str1, str2, str3, str4, str5) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
440 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
441 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
442 |
is now \~40% faster |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
443 |
(https://github.com/fmtlib/fmt/issues/1685). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
444 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
445 |
- Applied extern templates to improve compile times when using the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
446 |
core API and `fmt/format.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
447 |
(https://github.com/fmtlib/fmt/issues/1452). For example, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
448 |
on macOS with clang the compile time of a test translation unit |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
449 |
dropped from 2.3s to 0.3s with `-O2` and from 0.6s to 0.3s with the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
450 |
default settings (`-O0`). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
451 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
452 |
Before (`-O2`): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
453 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
454 |
% time c++ -c test.cc -I include -std=c++17 -O2 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
455 |
c++ -c test.cc -I include -std=c++17 -O2 2.22s user 0.08s system 99% cpu 2.311 total |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
456 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
457 |
After (`-O2`): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
458 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
459 |
% time c++ -c test.cc -I include -std=c++17 -O2 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
460 |
c++ -c test.cc -I include -std=c++17 -O2 0.26s user 0.04s system 98% cpu 0.303 total |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
461 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
462 |
Before (default): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
463 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
464 |
% time c++ -c test.cc -I include -std=c++17 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
465 |
c++ -c test.cc -I include -std=c++17 0.53s user 0.06s system 98% cpu 0.601 total |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
466 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
467 |
After (default): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
468 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
469 |
% time c++ -c test.cc -I include -std=c++17 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
470 |
c++ -c test.cc -I include -std=c++17 0.24s user 0.06s system 98% cpu 0.301 total |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
471 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
472 |
It is still recommended to use `fmt/core.h` instead of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
473 |
`fmt/format.h` but the compile time difference is now smaller. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
474 |
Thanks @alex3d for the suggestion. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
475 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
476 |
- Named arguments are now stored on stack (no dynamic memory |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
477 |
allocations) and the compiled code is more compact and efficient. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
478 |
For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
479 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
480 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
481 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
482 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
483 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
484 |
fmt::print("The answer is {answer}\n", fmt::arg("answer", 42)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
485 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
486 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
487 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
488 |
compiles to just ([godbolt](https://godbolt.org/z/NcfEp_)) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
489 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
490 |
```asm |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
491 |
.LC0: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
492 |
.string "answer" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
493 |
.LC1: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
494 |
.string "The answer is {answer}\n" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
495 |
main: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
496 |
sub rsp, 56 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
497 |
mov edi, OFFSET FLAT:.LC1 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
498 |
mov esi, 23 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
499 |
movabs rdx, 4611686018427387905 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
500 |
lea rax, [rsp+32] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
501 |
lea rcx, [rsp+16] |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
502 |
mov QWORD PTR [rsp+8], 1 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
503 |
mov QWORD PTR [rsp], rax |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
504 |
mov DWORD PTR [rsp+16], 42 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
505 |
mov QWORD PTR [rsp+32], OFFSET FLAT:.LC0 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
506 |
mov DWORD PTR [rsp+40], 0 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
507 |
call fmt::v6::vprint(fmt::v6::basic_string_view<char>, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
508 |
fmt::v6::format_args) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
509 |
xor eax, eax |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
510 |
add rsp, 56 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
511 |
ret |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
512 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
513 |
.L.str.1: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
514 |
.asciz "answer" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
515 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
516 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
517 |
- Implemented compile-time checks for dynamic width and precision |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
518 |
(https://github.com/fmtlib/fmt/issues/1614): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
519 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
520 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
521 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
522 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
523 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
524 |
fmt::print(FMT_STRING("{0:{1}}"), 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
525 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
526 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
527 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
528 |
now gives a compilation error because argument 1 doesn\'t exist: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
529 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
530 |
In file included from test.cc:1: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
531 |
include/fmt/format.h:2726:27: error: constexpr variable 'invalid_format' must be |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
532 |
initialized by a constant expression |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
533 |
FMT_CONSTEXPR_DECL bool invalid_format = |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
534 |
^ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
535 |
... |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
536 |
include/fmt/core.h:569:26: note: in call to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
537 |
'&checker(s, {}).context_->on_error(&"argument not found"[0])' |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
538 |
if (id >= num_args_) on_error("argument not found"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
539 |
^ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
540 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
541 |
- Added sentinel support to `fmt::join` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
542 |
(https://github.com/fmtlib/fmt/pull/1689) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
543 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
544 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
545 |
struct zstring_sentinel {}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
546 |
bool operator==(const char* p, zstring_sentinel) { return *p == '\0'; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
547 |
bool operator!=(const char* p, zstring_sentinel) { return *p != '\0'; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
548 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
549 |
struct zstring { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
550 |
const char* p; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
551 |
const char* begin() const { return p; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
552 |
zstring_sentinel end() const { return {}; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
553 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
554 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
555 |
auto s = fmt::format("{}", fmt::join(zstring{"hello"}, "_")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
556 |
// s == "h_e_l_l_o" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
557 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
558 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
559 |
Thanks @BRevzin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
560 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
561 |
- Added support for named arguments, `clear` and `reserve` to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
562 |
`dynamic_format_arg_store` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
563 |
(https://github.com/fmtlib/fmt/issues/1655, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
564 |
https://github.com/fmtlib/fmt/pull/1663, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
565 |
https://github.com/fmtlib/fmt/pull/1674, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
566 |
https://github.com/fmtlib/fmt/pull/1677). Thanks @vsolontsov-ll. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
567 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
568 |
- Added support for the `'c'` format specifier to integral types for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
569 |
compatibility with `std::format` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
570 |
(https://github.com/fmtlib/fmt/issues/1652). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
571 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
572 |
- Replaced the `'n'` format specifier with `'L'` for compatibility |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
573 |
with `std::format` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
574 |
(https://github.com/fmtlib/fmt/issues/1624). The `'n'` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
575 |
specifier can be enabled via the `FMT_DEPRECATED_N_SPECIFIER` macro. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
576 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
577 |
- The `'='` format specifier is now disabled by default for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
578 |
compatibility with `std::format`. It can be enabled via the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
579 |
`FMT_DEPRECATED_NUMERIC_ALIGN` macro. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
580 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
581 |
- Removed the following deprecated APIs: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
582 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
583 |
- `FMT_STRING_ALIAS` and `fmt` macros - replaced by `FMT_STRING` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
584 |
- `fmt::basic_string_view::char_type` - replaced by |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
585 |
`fmt::basic_string_view::value_type` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
586 |
- `convert_to_int` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
587 |
- `format_arg_store::types` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
588 |
- `*parse_context` - replaced by `*format_parse_context` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
589 |
- `FMT_DEPRECATED_INCLUDE_OS` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
590 |
- `FMT_DEPRECATED_PERCENT` - incompatible with `std::format` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
591 |
- `*writer` - replaced by compiled format API |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
592 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
593 |
- Renamed the `internal` namespace to `detail` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
594 |
(https://github.com/fmtlib/fmt/issues/1538). The former is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
595 |
still provided as an alias if the `FMT_USE_INTERNAL` macro is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
596 |
defined. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
597 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
598 |
- Improved compatibility between `fmt::printf` with the standard specs |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
599 |
(https://github.com/fmtlib/fmt/issues/1595, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
600 |
https://github.com/fmtlib/fmt/pull/1682, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
601 |
https://github.com/fmtlib/fmt/pull/1683, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
602 |
https://github.com/fmtlib/fmt/pull/1687, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
603 |
https://github.com/fmtlib/fmt/pull/1699). Thanks @rimathia. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
604 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
605 |
- Fixed handling of `operator<<` overloads that use `copyfmt` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
606 |
(https://github.com/fmtlib/fmt/issues/1666). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
607 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
608 |
- Added the `FMT_OS` CMake option to control inclusion of OS-specific |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
609 |
APIs in the fmt target. This can be useful for embedded platforms |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
610 |
(https://github.com/fmtlib/fmt/issues/1654, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
611 |
https://github.com/fmtlib/fmt/pull/1656). Thanks @kwesolowski. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
612 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
613 |
- Replaced `FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION` with the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
614 |
`FMT_FUZZ` macro to prevent interfering with fuzzing of projects |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
615 |
using {fmt} (https://github.com/fmtlib/fmt/pull/1650). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
616 |
Thanks @asraa. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
617 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
618 |
- Fixed compatibility with emscripten |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
619 |
(https://github.com/fmtlib/fmt/issues/1636, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
620 |
https://github.com/fmtlib/fmt/pull/1637). Thanks @ArthurSonzogni. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
621 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
622 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
623 |
(https://github.com/fmtlib/fmt/issues/704, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
624 |
https://github.com/fmtlib/fmt/pull/1643, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
625 |
https://github.com/fmtlib/fmt/pull/1660, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
626 |
https://github.com/fmtlib/fmt/pull/1681, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
627 |
https://github.com/fmtlib/fmt/pull/1691, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
628 |
https://github.com/fmtlib/fmt/pull/1706, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
629 |
https://github.com/fmtlib/fmt/pull/1714, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
630 |
https://github.com/fmtlib/fmt/pull/1721, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
631 |
https://github.com/fmtlib/fmt/pull/1739, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
632 |
https://github.com/fmtlib/fmt/pull/1740, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
633 |
https://github.com/fmtlib/fmt/pull/1741, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
634 |
https://github.com/fmtlib/fmt/pull/1751). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
635 |
Thanks @senior7515, @lsr0, @puetzk, @fpelliccioni, Alexey Kuzmenko, @jelly, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
636 |
@claremacrae, @jiapengwen, @gsjaardema and @alexey-milovidov. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
637 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
638 |
- Implemented various build configuration fixes and improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
639 |
(https://github.com/fmtlib/fmt/pull/1603, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
640 |
https://github.com/fmtlib/fmt/pull/1657, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
641 |
https://github.com/fmtlib/fmt/pull/1702, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
642 |
https://github.com/fmtlib/fmt/pull/1728). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
643 |
Thanks @scramsby, @jtojnar, @orivej and @flagarde. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
644 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
645 |
- Fixed various warnings and compilation issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
646 |
(https://github.com/fmtlib/fmt/pull/1616, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
647 |
https://github.com/fmtlib/fmt/issues/1620, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
648 |
https://github.com/fmtlib/fmt/issues/1622, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
649 |
https://github.com/fmtlib/fmt/issues/1625, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
650 |
https://github.com/fmtlib/fmt/pull/1627, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
651 |
https://github.com/fmtlib/fmt/issues/1628, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
652 |
https://github.com/fmtlib/fmt/pull/1629, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
653 |
https://github.com/fmtlib/fmt/issues/1631, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
654 |
https://github.com/fmtlib/fmt/pull/1633, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
655 |
https://github.com/fmtlib/fmt/pull/1649, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
656 |
https://github.com/fmtlib/fmt/issues/1658, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
657 |
https://github.com/fmtlib/fmt/pull/1661, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
658 |
https://github.com/fmtlib/fmt/pull/1667, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
659 |
https://github.com/fmtlib/fmt/issues/1668, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
660 |
https://github.com/fmtlib/fmt/pull/1669, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
661 |
https://github.com/fmtlib/fmt/issues/1692, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
662 |
https://github.com/fmtlib/fmt/pull/1696, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
663 |
https://github.com/fmtlib/fmt/pull/1697, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
664 |
https://github.com/fmtlib/fmt/issues/1707, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
665 |
https://github.com/fmtlib/fmt/pull/1712, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
666 |
https://github.com/fmtlib/fmt/pull/1716, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
667 |
https://github.com/fmtlib/fmt/pull/1722, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
668 |
https://github.com/fmtlib/fmt/issues/1724, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
669 |
https://github.com/fmtlib/fmt/pull/1729, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
670 |
https://github.com/fmtlib/fmt/pull/1738, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
671 |
https://github.com/fmtlib/fmt/issues/1742, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
672 |
https://github.com/fmtlib/fmt/issues/1743, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
673 |
https://github.com/fmtlib/fmt/pull/1744, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
674 |
https://github.com/fmtlib/fmt/issues/1747, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
675 |
https://github.com/fmtlib/fmt/pull/1750). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
676 |
Thanks @gsjaardema, @gabime, @johnor, @Kurkin, @invexed, @peterbell10, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
677 |
@daixtrose, @petrutlucian94, @Neargye, @ambitslix, @gabime, @erthink, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
678 |
@tohammer and @0x8000-0000. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
679 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
680 |
# 6.2.1 - 2020-05-09 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
681 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
682 |
- Fixed ostream support in `sprintf` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
683 |
(https://github.com/fmtlib/fmt/issues/1631). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
684 |
- Fixed type detection when using implicit conversion to `string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
685 |
and ostream `operator<<` inconsistently |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
686 |
(https://github.com/fmtlib/fmt/issues/1662). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
687 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
688 |
# 6.2.0 - 2020-04-05 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
689 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
690 |
- Improved error reporting when trying to format an object of a |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
691 |
non-formattable type: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
692 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
693 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
694 |
fmt::format("{}", S()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
695 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
696 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
697 |
now gives: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
698 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
699 |
include/fmt/core.h:1015:5: error: static_assert failed due to requirement |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
700 |
'formattable' "Cannot format argument. To make type T formattable provide a |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
701 |
formatter<T> specialization: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
702 |
https://fmt.dev/latest/api.html#formatting-user-defined-types" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
703 |
static_assert( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
704 |
^ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
705 |
... |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
706 |
note: in instantiation of function template specialization |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
707 |
'fmt::v6::format<char [3], S, char>' requested here |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
708 |
fmt::format("{}", S()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
709 |
^ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
710 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
711 |
if `S` is not formattable. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
712 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
713 |
- Reduced the library size by \~10%. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
714 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
715 |
- Always print decimal point if `#` is specified |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
716 |
(https://github.com/fmtlib/fmt/issues/1476, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
717 |
https://github.com/fmtlib/fmt/issues/1498): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
718 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
719 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
720 |
fmt::print("{:#.0f}", 42.0); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
721 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
722 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
723 |
now prints `42.` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
724 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
725 |
- Implemented the `'L'` specifier for locale-specific numeric |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
726 |
formatting to improve compatibility with `std::format`. The `'n'` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
727 |
specifier is now deprecated and will be removed in the next major |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
728 |
release. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
729 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
730 |
- Moved OS-specific APIs such as `windows_error` from `fmt/format.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
731 |
to `fmt/os.h`. You can define `FMT_DEPRECATED_INCLUDE_OS` to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
732 |
automatically include `fmt/os.h` from `fmt/format.h` for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
733 |
compatibility but this will be disabled in the next major release. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
734 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
735 |
- Added precision overflow detection in floating-point formatting. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
736 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
737 |
- Implemented detection of invalid use of `fmt::arg`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
738 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
739 |
- Used `type_identity` to block unnecessary template argument |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
740 |
deduction. Thanks Tim Song. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
741 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
742 |
- Improved UTF-8 handling |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
743 |
(https://github.com/fmtlib/fmt/issues/1109): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
744 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
745 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
746 |
fmt::print("â{0:â^{2}}â\n" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
747 |
"â{1: ^{2}}â\n" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
748 |
"â{0:â^{2}}â\n", "", "ĐŃŃĐČŃŃĐ°ĐœĐœĐ”, ŃĐČĐ”Ń!", 21); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
749 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
750 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
751 |
now prints: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
752 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
753 |
âââââââââââââââââââââââ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
754 |
â ĐŃŃĐČŃŃĐ°ĐœĐœĐ”, ŃĐČĐ”Ń! â |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
755 |
âââââââââââââââââââââââ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
756 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
757 |
on systems that support Unicode. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
758 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
759 |
- Added experimental dynamic argument storage |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
760 |
(https://github.com/fmtlib/fmt/issues/1170, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
761 |
https://github.com/fmtlib/fmt/pull/1584): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
762 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
763 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
764 |
fmt::dynamic_format_arg_store<fmt::format_context> store; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
765 |
store.push_back("answer"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
766 |
store.push_back(42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
767 |
fmt::vprint("The {} is {}.\n", store); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
768 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
769 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
770 |
prints: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
771 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
772 |
The answer is 42. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
773 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
774 |
Thanks @vsolontsov-ll. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
775 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
776 |
- Made `fmt::join` accept `initializer_list` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
777 |
(https://github.com/fmtlib/fmt/pull/1591). Thanks @Rapotkinnik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
778 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
779 |
- Fixed handling of empty tuples |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
780 |
(https://github.com/fmtlib/fmt/issues/1588). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
781 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
782 |
- Fixed handling of output iterators in `format_to_n` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
783 |
(https://github.com/fmtlib/fmt/issues/1506). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
784 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
785 |
- Fixed formatting of `std::chrono::duration` types to wide output |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
786 |
(https://github.com/fmtlib/fmt/pull/1533). Thanks @zeffy. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
787 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
788 |
- Added const `begin` and `end` overload to buffers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
789 |
(https://github.com/fmtlib/fmt/pull/1553). Thanks @dominicpoeschko. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
790 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
791 |
- Added the ability to disable floating-point formatting via |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
792 |
`FMT_USE_FLOAT`, `FMT_USE_DOUBLE` and `FMT_USE_LONG_DOUBLE` macros |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
793 |
for extremely memory-constrained embedded system |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
794 |
(https://github.com/fmtlib/fmt/pull/1590). Thanks @albaguirre. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
795 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
796 |
- Made `FMT_STRING` work with `constexpr` `string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
797 |
(https://github.com/fmtlib/fmt/pull/1589). Thanks @scramsby. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
798 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
799 |
- Implemented a minor optimization in the format string parser |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
800 |
(https://github.com/fmtlib/fmt/pull/1560). Thanks @IkarusDeveloper. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
801 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
802 |
- Improved attribute detection |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
803 |
(https://github.com/fmtlib/fmt/pull/1469, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
804 |
https://github.com/fmtlib/fmt/pull/1475, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
805 |
https://github.com/fmtlib/fmt/pull/1576). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
806 |
Thanks @federico-busato, @chronoxor and @refnum. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
807 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
808 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
809 |
(https://github.com/fmtlib/fmt/pull/1481, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
810 |
https://github.com/fmtlib/fmt/pull/1523). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
811 |
Thanks @JackBoosY and @imba-tjd. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
812 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
813 |
- Fixed symbol visibility on Linux when compiling with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
814 |
`-fvisibility=hidden` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
815 |
(https://github.com/fmtlib/fmt/pull/1535). Thanks @milianw. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
816 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
817 |
- Implemented various build configuration fixes and improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
818 |
(https://github.com/fmtlib/fmt/issues/1264, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
819 |
https://github.com/fmtlib/fmt/issues/1460, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
820 |
https://github.com/fmtlib/fmt/pull/1534, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
821 |
https://github.com/fmtlib/fmt/issues/1536, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
822 |
https://github.com/fmtlib/fmt/issues/1545, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
823 |
https://github.com/fmtlib/fmt/pull/1546, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
824 |
https://github.com/fmtlib/fmt/issues/1566, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
825 |
https://github.com/fmtlib/fmt/pull/1582, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
826 |
https://github.com/fmtlib/fmt/issues/1597, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
827 |
https://github.com/fmtlib/fmt/pull/1598). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
828 |
Thanks @ambitslix, @jwillikers and @stac47. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
829 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
830 |
- Fixed various warnings and compilation issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
831 |
(https://github.com/fmtlib/fmt/pull/1433, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
832 |
https://github.com/fmtlib/fmt/issues/1461, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
833 |
https://github.com/fmtlib/fmt/pull/1470, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
834 |
https://github.com/fmtlib/fmt/pull/1480, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
835 |
https://github.com/fmtlib/fmt/pull/1485, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
836 |
https://github.com/fmtlib/fmt/pull/1492, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
837 |
https://github.com/fmtlib/fmt/issues/1493, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
838 |
https://github.com/fmtlib/fmt/issues/1504, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
839 |
https://github.com/fmtlib/fmt/pull/1505, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
840 |
https://github.com/fmtlib/fmt/pull/1512, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
841 |
https://github.com/fmtlib/fmt/issues/1515, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
842 |
https://github.com/fmtlib/fmt/pull/1516, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
843 |
https://github.com/fmtlib/fmt/pull/1518, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
844 |
https://github.com/fmtlib/fmt/pull/1519, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
845 |
https://github.com/fmtlib/fmt/pull/1520, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
846 |
https://github.com/fmtlib/fmt/pull/1521, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
847 |
https://github.com/fmtlib/fmt/pull/1522, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
848 |
https://github.com/fmtlib/fmt/issues/1524, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
849 |
https://github.com/fmtlib/fmt/pull/1530, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
850 |
https://github.com/fmtlib/fmt/issues/1531, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
851 |
https://github.com/fmtlib/fmt/pull/1532, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
852 |
https://github.com/fmtlib/fmt/issues/1539, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
853 |
https://github.com/fmtlib/fmt/issues/1547, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
854 |
https://github.com/fmtlib/fmt/issues/1548, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
855 |
https://github.com/fmtlib/fmt/pull/1554, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
856 |
https://github.com/fmtlib/fmt/issues/1567, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
857 |
https://github.com/fmtlib/fmt/pull/1568, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
858 |
https://github.com/fmtlib/fmt/pull/1569, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
859 |
https://github.com/fmtlib/fmt/pull/1571, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
860 |
https://github.com/fmtlib/fmt/pull/1573, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
861 |
https://github.com/fmtlib/fmt/pull/1575, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
862 |
https://github.com/fmtlib/fmt/pull/1581, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
863 |
https://github.com/fmtlib/fmt/issues/1583, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
864 |
https://github.com/fmtlib/fmt/issues/1586, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
865 |
https://github.com/fmtlib/fmt/issues/1587, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
866 |
https://github.com/fmtlib/fmt/issues/1594, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
867 |
https://github.com/fmtlib/fmt/pull/1596, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
868 |
https://github.com/fmtlib/fmt/issues/1604, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
869 |
https://github.com/fmtlib/fmt/pull/1606, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
870 |
https://github.com/fmtlib/fmt/issues/1607, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
871 |
https://github.com/fmtlib/fmt/issues/1609). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
872 |
Thanks @marti4d, @iPherian, @parkertomatoes, @gsjaardema, @chronoxor, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
873 |
@DanielaE, @torsten48, @tohammer, @lefticus, @ryusakki, @adnsv, @fghzxm, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
874 |
@refnum, @pramodk, @Spirrwell and @scramsby. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
875 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
876 |
# 6.1.2 - 2019-12-11 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
877 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
878 |
- Fixed ABI compatibility with `libfmt.so.6.0.0` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
879 |
(https://github.com/fmtlib/fmt/issues/1471). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
880 |
- Fixed handling types convertible to `std::string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
881 |
(https://github.com/fmtlib/fmt/pull/1451). Thanks @denizevrenci. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
882 |
- Made CUDA test an opt-in enabled via the `FMT_CUDA_TEST` CMake |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
883 |
option. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
884 |
- Fixed sign conversion warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
885 |
(https://github.com/fmtlib/fmt/pull/1440). Thanks @0x8000-0000. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
886 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
887 |
# 6.1.1 - 2019-12-04 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
888 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
889 |
- Fixed shared library build on Windows |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
890 |
(https://github.com/fmtlib/fmt/pull/1443, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
891 |
https://github.com/fmtlib/fmt/issues/1445, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
892 |
https://github.com/fmtlib/fmt/pull/1446, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
893 |
https://github.com/fmtlib/fmt/issues/1450). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
894 |
Thanks @egorpugin and @bbolli. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
895 |
- Added a missing decimal point in exponent notation with trailing |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
896 |
zeros. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
897 |
- Removed deprecated `format_arg_store::TYPES`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
898 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
899 |
# 6.1.0 - 2019-12-01 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
900 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
901 |
- {fmt} now formats IEEE 754 `float` and `double` using the shortest |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
902 |
decimal representation with correct rounding by default: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
903 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
904 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
905 |
#include <cmath> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
906 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
907 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
908 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
909 |
fmt::print("{}", M_PI); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
910 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
911 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
912 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
913 |
prints `3.141592653589793`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
914 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
915 |
- Made the fast binary to decimal floating-point formatter the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
916 |
default, simplified it and improved performance. {fmt} is now 15 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
917 |
times faster than libc++\'s `std::ostringstream`, 11 times faster |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
918 |
than `printf` and 10% faster than double-conversion on |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
919 |
[dtoa-benchmark](https://github.com/fmtlib/dtoa-benchmark): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
920 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
921 |
| Function | Time (ns) | Speedup | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
922 |
| ------------- | --------: | ------: | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
923 |
| ostringstream | 1,346.30 | 1.00x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
924 |
| ostrstream | 1,195.74 | 1.13x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
925 |
| sprintf | 995.08 | 1.35x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
926 |
| doubleconv | 99.10 | 13.59x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
927 |
| fmt | 88.34 | 15.24x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
928 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
929 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
930 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
931 |
- {fmt} no longer converts `float` arguments to `double`. In |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
932 |
particular this improves the default (shortest) representation of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
933 |
floats and makes `fmt::format` consistent with `std::format` specs |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
934 |
(https://github.com/fmtlib/fmt/issues/1336, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
935 |
https://github.com/fmtlib/fmt/issues/1353, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
936 |
https://github.com/fmtlib/fmt/pull/1360, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
937 |
https://github.com/fmtlib/fmt/pull/1361): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
938 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
939 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
940 |
fmt::print("{}", 0.1f); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
941 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
942 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
943 |
prints `0.1` instead of `0.10000000149011612`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
944 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
945 |
Thanks @orivej. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
946 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
947 |
- Made floating-point formatting output consistent with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
948 |
`printf`/iostreams |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
949 |
(https://github.com/fmtlib/fmt/issues/1376, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
950 |
https://github.com/fmtlib/fmt/issues/1417). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
951 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
952 |
- Added support for 128-bit integers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
953 |
(https://github.com/fmtlib/fmt/pull/1287): |
| 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 |
fmt::print("{}", std::numeric_limits<__int128_t>::max()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
957 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
958 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
959 |
prints `170141183460469231731687303715884105727`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
960 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
961 |
Thanks @denizevrenci. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
962 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
963 |
- The overload of `print` that takes `text_style` is now atomic, i.e. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
964 |
the output from different threads doesn\'t interleave |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
965 |
(https://github.com/fmtlib/fmt/pull/1351). Thanks @tankiJong. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
966 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
967 |
- Made compile time in the header-only mode \~20% faster by reducing |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
968 |
the number of template instantiations. `wchar_t` overload of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
969 |
`vprint` was moved from `fmt/core.h` to `fmt/format.h`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
970 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
971 |
- Added an overload of `fmt::join` that works with tuples |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
972 |
(https://github.com/fmtlib/fmt/issues/1322, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
973 |
https://github.com/fmtlib/fmt/pull/1330): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
974 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
975 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
976 |
#include <tuple> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
977 |
#include <fmt/ranges.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
978 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
979 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
980 |
std::tuple<char, int, float> t{'a', 1, 2.0f}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
981 |
fmt::print("{}", t); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
982 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
983 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
984 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
985 |
prints `('a', 1, 2.0)`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
986 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
987 |
Thanks @jeremyong. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
988 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
989 |
- Changed formatting of octal zero with prefix from \"00\" to \"0\": |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
990 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
991 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
992 |
fmt::print("{:#o}", 0); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
993 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
994 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
995 |
prints `0`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
996 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
997 |
- The locale is now passed to ostream insertion (`<<`) operators |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
998 |
(https://github.com/fmtlib/fmt/pull/1406): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
999 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1000 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1001 |
#include <fmt/locale.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1002 |
#include <fmt/ostream.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1003 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1004 |
struct S { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1005 |
double value; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1006 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1007 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1008 |
std::ostream& operator<<(std::ostream& os, S s) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1009 |
return os << s.value; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1010 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1011 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1012 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1013 |
auto s = fmt::format(std::locale("fr_FR.UTF-8"), "{}", S{0.42}); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1014 |
// s == "0,42" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1015 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1016 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1017 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1018 |
Thanks @dlaugt. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1019 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1020 |
- Locale-specific number formatting now uses grouping |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1021 |
(https://github.com/fmtlib/fmt/issues/1393, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1022 |
https://github.com/fmtlib/fmt/pull/1394). Thanks @skrdaniel. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1023 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1024 |
- Fixed handling of types with deleted implicit rvalue conversion to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1025 |
`const char**` (https://github.com/fmtlib/fmt/issues/1421): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1026 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1027 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1028 |
struct mystring { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1029 |
operator const char*() const&; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1030 |
operator const char*() &; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1031 |
operator const char*() const&& = delete; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1032 |
operator const char*() && = delete; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1033 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1034 |
mystring str; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1035 |
fmt::print("{}", str); // now compiles |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1036 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1037 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1038 |
- Enums are now mapped to correct underlying types instead of `int` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1039 |
(https://github.com/fmtlib/fmt/pull/1286). Thanks @agmt. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1040 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1041 |
- Enum classes are no longer implicitly converted to `int` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1042 |
(https://github.com/fmtlib/fmt/issues/1424). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1043 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1044 |
- Added `basic_format_parse_context` for consistency with C++20 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1045 |
`std::format` and deprecated `basic_parse_context`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1046 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1047 |
- Fixed handling of UTF-8 in precision |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1048 |
(https://github.com/fmtlib/fmt/issues/1389, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1049 |
https://github.com/fmtlib/fmt/pull/1390). Thanks @tajtiattila. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1050 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1051 |
- {fmt} can now be installed on Linux, macOS and Windows with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1052 |
[Conda](https://docs.conda.io/en/latest/) using its |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1053 |
[conda-forge](https://conda-forge.org) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1054 |
[package](https://github.com/conda-forge/fmt-feedstock) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1055 |
(https://github.com/fmtlib/fmt/pull/1410): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1056 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1057 |
conda install -c conda-forge fmt |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1058 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1059 |
Thanks @tdegeus. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1060 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1061 |
- Added a CUDA test (https://github.com/fmtlib/fmt/pull/1285, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1062 |
https://github.com/fmtlib/fmt/pull/1317). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1063 |
Thanks @luncliff and @risa2000. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1064 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1065 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1066 |
(https://github.com/fmtlib/fmt/pull/1276, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1067 |
https://github.com/fmtlib/fmt/issues/1291, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1068 |
https://github.com/fmtlib/fmt/issues/1296, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1069 |
https://github.com/fmtlib/fmt/pull/1315, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1070 |
https://github.com/fmtlib/fmt/pull/1332, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1071 |
https://github.com/fmtlib/fmt/pull/1337, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1072 |
https://github.com/fmtlib/fmt/issues/1395 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1073 |
https://github.com/fmtlib/fmt/pull/1418). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1074 |
Thanks @waywardmonkeys, @pauldreik and @jackoalan. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1075 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1076 |
- Various code improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1077 |
(https://github.com/fmtlib/fmt/pull/1358, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1078 |
https://github.com/fmtlib/fmt/pull/1407). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1079 |
Thanks @orivej and @dpacbach. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1080 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1081 |
- Fixed compile-time format string checks for user-defined types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1082 |
(https://github.com/fmtlib/fmt/issues/1292). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1083 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1084 |
- Worked around a false positive in `unsigned-integer-overflow` sanitizer |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1085 |
(https://github.com/fmtlib/fmt/issues/1377). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1086 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1087 |
- Fixed various warnings and compilation issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1088 |
(https://github.com/fmtlib/fmt/issues/1273, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1089 |
https://github.com/fmtlib/fmt/pull/1278, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1090 |
https://github.com/fmtlib/fmt/pull/1280, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1091 |
https://github.com/fmtlib/fmt/issues/1281, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1092 |
https://github.com/fmtlib/fmt/issues/1288, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1093 |
https://github.com/fmtlib/fmt/pull/1290, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1094 |
https://github.com/fmtlib/fmt/pull/1301, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1095 |
https://github.com/fmtlib/fmt/issues/1305, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1096 |
https://github.com/fmtlib/fmt/issues/1306, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1097 |
https://github.com/fmtlib/fmt/issues/1309, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1098 |
https://github.com/fmtlib/fmt/pull/1312, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1099 |
https://github.com/fmtlib/fmt/issues/1313, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1100 |
https://github.com/fmtlib/fmt/issues/1316, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1101 |
https://github.com/fmtlib/fmt/issues/1319, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1102 |
https://github.com/fmtlib/fmt/pull/1320, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1103 |
https://github.com/fmtlib/fmt/pull/1326, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1104 |
https://github.com/fmtlib/fmt/pull/1328, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1105 |
https://github.com/fmtlib/fmt/issues/1344, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1106 |
https://github.com/fmtlib/fmt/pull/1345, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1107 |
https://github.com/fmtlib/fmt/pull/1347, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1108 |
https://github.com/fmtlib/fmt/pull/1349, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1109 |
https://github.com/fmtlib/fmt/issues/1354, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1110 |
https://github.com/fmtlib/fmt/issues/1362, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1111 |
https://github.com/fmtlib/fmt/issues/1366, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1112 |
https://github.com/fmtlib/fmt/pull/1364, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1113 |
https://github.com/fmtlib/fmt/pull/1370, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1114 |
https://github.com/fmtlib/fmt/pull/1371, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1115 |
https://github.com/fmtlib/fmt/issues/1385, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1116 |
https://github.com/fmtlib/fmt/issues/1388, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1117 |
https://github.com/fmtlib/fmt/pull/1397, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1118 |
https://github.com/fmtlib/fmt/pull/1414, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1119 |
https://github.com/fmtlib/fmt/pull/1416, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1120 |
https://github.com/fmtlib/fmt/issues/1422 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1121 |
https://github.com/fmtlib/fmt/pull/1427, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1122 |
https://github.com/fmtlib/fmt/issues/1431, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1123 |
https://github.com/fmtlib/fmt/pull/1433). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1124 |
Thanks @hhb, @gsjaardema, @gabime, @neheb, @vedranmiletic, @dkavolis, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1125 |
@mwinterb, @orivej, @denizevrenci, @leonklingele, @chronoxor, @kent-tri, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1126 |
@0x8000-0000 and @marti4d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1127 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1128 |
# 6.0.0 - 2019-08-26 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1129 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1130 |
- Switched to the [MIT license]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1131 |
https://github.com/fmtlib/fmt/blob/5a4b24613ba16cc689977c3b5bd8274a3ba1dd1f/LICENSE.rst) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1132 |
with an optional exception that allows distributing binary code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1133 |
without attribution. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1134 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1135 |
- Floating-point formatting is now locale-independent by default: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1136 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1137 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1138 |
#include <locale> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1139 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1140 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1141 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1142 |
std::locale::global(std::locale("ru_RU.UTF-8")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1143 |
fmt::print("value = {}", 4.2); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1144 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1145 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1146 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1147 |
prints \"value = 4.2\" regardless of the locale. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1148 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1149 |
For locale-specific formatting use the `n` specifier: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1150 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1151 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1152 |
std::locale::global(std::locale("ru_RU.UTF-8")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1153 |
fmt::print("value = {:n}", 4.2); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1154 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1155 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1156 |
prints \"value = 4,2\". |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1157 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1158 |
- Added an experimental Grisu floating-point formatting algorithm |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1159 |
implementation (disabled by default). To enable it compile with the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1160 |
`FMT_USE_GRISU` macro defined to 1: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1161 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1162 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1163 |
#define FMT_USE_GRISU 1 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1164 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1165 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1166 |
auto s = fmt::format("{}", 4.2); // formats 4.2 using Grisu |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1167 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1168 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1169 |
With Grisu enabled, {fmt} is 13x faster than `std::ostringstream` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1170 |
(libc++) and 10x faster than `sprintf` on |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1171 |
[dtoa-benchmark](https://github.com/fmtlib/dtoa-benchmark) ([full |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1172 |
results](https://fmt.dev/unknown_mac64_clang10.0.html)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1173 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1174 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1175 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1176 |
- Separated formatting and parsing contexts for consistency with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1177 |
[C++20 std::format](http://eel.is/c++draft/format), removing the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1178 |
undocumented `basic_format_context::parse_context()` function. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1179 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1180 |
- Added [oss-fuzz](https://github.com/google/oss-fuzz) support |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1181 |
(https://github.com/fmtlib/fmt/pull/1199). Thanks @pauldreik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1182 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1183 |
- `formatter` specializations now always take precedence over |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1184 |
`operator<<` (https://github.com/fmtlib/fmt/issues/952): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1185 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1186 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1187 |
#include <iostream> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1188 |
#include <fmt/ostream.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1189 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1190 |
struct S {}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1191 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1192 |
std::ostream& operator<<(std::ostream& os, S) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1193 |
return os << 1; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1194 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1195 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1196 |
template <> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1197 |
struct fmt::formatter<S> : fmt::formatter<int> { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1198 |
auto format(S, format_context& ctx) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1199 |
return formatter<int>::format(2, ctx); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1200 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1201 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1202 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1203 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1204 |
std::cout << S() << "\n"; // prints 1 using operator<< |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1205 |
fmt::print("{}\n", S()); // prints 2 using formatter |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1206 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1207 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1208 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1209 |
- Introduced the experimental `fmt::compile` function that does format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1210 |
string compilation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1211 |
(https://github.com/fmtlib/fmt/issues/618, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1212 |
https://github.com/fmtlib/fmt/issues/1169, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1213 |
https://github.com/fmtlib/fmt/pull/1171): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1214 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1215 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1216 |
#include <fmt/compile.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1217 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1218 |
auto f = fmt::compile<int>("{}"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1219 |
std::string s = fmt::format(f, 42); // can be called multiple times to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1220 |
// format different values |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1221 |
// s == "42" |
| 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 |
It moves the cost of parsing a format string outside of the format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1225 |
function which can be beneficial when identically formatting many |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1226 |
objects of the same types. Thanks @stryku. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1227 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1228 |
- Added experimental `%` format specifier that formats floating-point |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1229 |
values as percentages |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1230 |
(https://github.com/fmtlib/fmt/pull/1060, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1231 |
https://github.com/fmtlib/fmt/pull/1069, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1232 |
https://github.com/fmtlib/fmt/pull/1071): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1233 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1234 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1235 |
auto s = fmt::format("{:.1%}", 0.42); // s == "42.0%" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1236 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1237 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1238 |
Thanks @gawain-bolton. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1239 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1240 |
- Implemented precision for floating-point durations |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1241 |
(https://github.com/fmtlib/fmt/issues/1004, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1242 |
https://github.com/fmtlib/fmt/pull/1012): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1243 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1244 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1245 |
auto s = fmt::format("{:.1}", std::chrono::duration<double>(1.234)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1246 |
// s == 1.2s |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1247 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1248 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1249 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1250 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1251 |
- Implemented `chrono` format specifiers `%Q` and `%q` that give the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1252 |
value and the unit respectively |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1253 |
(https://github.com/fmtlib/fmt/pull/1019): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1254 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1255 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1256 |
auto value = fmt::format("{:%Q}", 42s); // value == "42" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1257 |
auto unit = fmt::format("{:%q}", 42s); // unit == "s" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1258 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1259 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1260 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1261 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1262 |
- Fixed handling of dynamic width in chrono formatter: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1263 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1264 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1265 |
auto s = fmt::format("{0:{1}%H:%M:%S}", std::chrono::seconds(12345), 12); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1266 |
// ^ width argument index ^ width |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1267 |
// s == "03:25:45 " |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1268 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1269 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1270 |
Thanks Howard Hinnant. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1271 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1272 |
- Removed deprecated `fmt/time.h`. Use `fmt/chrono.h` instead. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1273 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1274 |
- Added `fmt::format` and `fmt::vformat` overloads that take |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1275 |
`text_style` (https://github.com/fmtlib/fmt/issues/993, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1276 |
https://github.com/fmtlib/fmt/pull/994): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1277 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1278 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1279 |
#include <fmt/color.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1280 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1281 |
std::string message = fmt::format(fmt::emphasis::bold | fg(fmt::color::red), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1282 |
"The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1283 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1284 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1285 |
Thanks @Naios. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1286 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1287 |
- Removed the deprecated color API (`print_colored`). Use the new API, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1288 |
namely `print` overloads that take `text_style` instead. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1289 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1290 |
- Made `std::unique_ptr` and `std::shared_ptr` formattable as pointers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1291 |
via `fmt::ptr` (https://github.com/fmtlib/fmt/pull/1121): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1292 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1293 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1294 |
std::unique_ptr<int> p = ...; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1295 |
fmt::print("{}", fmt::ptr(p)); // prints p as a pointer |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1296 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1297 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1298 |
Thanks @sighingnow. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1299 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1300 |
- Made `print` and `vprint` report I/O errors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1301 |
(https://github.com/fmtlib/fmt/issues/1098, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1302 |
https://github.com/fmtlib/fmt/pull/1099). Thanks @BillyDonahue. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1303 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1304 |
- Marked deprecated APIs with the `[[deprecated]]` attribute and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1305 |
removed internal uses of deprecated APIs |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1306 |
(https://github.com/fmtlib/fmt/pull/1022). Thanks @eliaskosunen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1307 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1308 |
- Modernized the codebase using more C++11 features and removing |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1309 |
workarounds. Most importantly, `buffer_context` is now an alias |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1310 |
template, so use `buffer_context<T>` instead of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1311 |
`buffer_context<T>::type`. These features require GCC 4.8 or later. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1312 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1313 |
- `formatter` specializations now always take precedence over implicit |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1314 |
conversions to `int` and the undocumented `convert_to_int` trait is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1315 |
now deprecated. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1316 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1317 |
- Moved the undocumented `basic_writer`, `writer`, and `wwriter` types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1318 |
to the `internal` namespace. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1319 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1320 |
- Removed deprecated `basic_format_context::begin()`. Use `out()` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1321 |
instead. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1322 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1323 |
- Disallowed passing the result of `join` as an lvalue to prevent |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1324 |
misuse. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1325 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1326 |
- Refactored the undocumented structs that represent parsed format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1327 |
specifiers to simplify the API and allow multibyte fill. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1328 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1329 |
- Moved SFINAE to template parameters to reduce symbol sizes. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1330 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1331 |
- Switched to `fputws` for writing wide strings so that it\'s no |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1332 |
longer required to call `_setmode` on Windows |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1333 |
(https://github.com/fmtlib/fmt/issues/1229, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1334 |
https://github.com/fmtlib/fmt/pull/1243). Thanks @jackoalan. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1335 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1336 |
- Improved literal-based API |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1337 |
(https://github.com/fmtlib/fmt/pull/1254). Thanks @sylveon. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1338 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1339 |
- Added support for exotic platforms without `uintptr_t` such as IBM i |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1340 |
(AS/400) which has 128-bit pointers and only 64-bit integers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1341 |
(https://github.com/fmtlib/fmt/issues/1059). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1342 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1343 |
- Added [Sublime Text syntax highlighting config]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1344 |
https://github.com/fmtlib/fmt/blob/master/support/C%2B%2B.sublime-syntax) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1345 |
(https://github.com/fmtlib/fmt/issues/1037). Thanks @Kronuz. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1346 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1347 |
- Added the `FMT_ENFORCE_COMPILE_STRING` macro to enforce the use of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1348 |
compile-time format strings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1349 |
(https://github.com/fmtlib/fmt/pull/1231). Thanks @jackoalan. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1350 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1351 |
- Stopped setting `CMAKE_BUILD_TYPE` if {fmt} is a subproject |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1352 |
(https://github.com/fmtlib/fmt/issues/1081). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1353 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1354 |
- Various build improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1355 |
(https://github.com/fmtlib/fmt/pull/1039, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1356 |
https://github.com/fmtlib/fmt/pull/1078, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1357 |
https://github.com/fmtlib/fmt/pull/1091, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1358 |
https://github.com/fmtlib/fmt/pull/1103, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1359 |
https://github.com/fmtlib/fmt/pull/1177). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1360 |
Thanks @luncliff, @jasonszang, @olafhering, @Lecetem and @pauldreik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1361 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1362 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1363 |
(https://github.com/fmtlib/fmt/issues/1049, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1364 |
https://github.com/fmtlib/fmt/pull/1051, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1365 |
https://github.com/fmtlib/fmt/pull/1083, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1366 |
https://github.com/fmtlib/fmt/pull/1113, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1367 |
https://github.com/fmtlib/fmt/pull/1114, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1368 |
https://github.com/fmtlib/fmt/issues/1146, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1369 |
https://github.com/fmtlib/fmt/issues/1180, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1370 |
https://github.com/fmtlib/fmt/pull/1250, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1371 |
https://github.com/fmtlib/fmt/pull/1252, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1372 |
https://github.com/fmtlib/fmt/pull/1265). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1373 |
Thanks @mikelui, @foonathan, @BillyDonahue, @jwakely, @kaisbe and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1374 |
@sdebionne. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1375 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1376 |
- Fixed ambiguous formatter specialization in `fmt/ranges.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1377 |
(https://github.com/fmtlib/fmt/issues/1123). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1378 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1379 |
- Fixed formatting of a non-empty `std::filesystem::path` which is an |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1380 |
infinitely deep range of its components |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1381 |
(https://github.com/fmtlib/fmt/issues/1268). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1382 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1383 |
- Fixed handling of general output iterators when formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1384 |
characters (https://github.com/fmtlib/fmt/issues/1056, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1385 |
https://github.com/fmtlib/fmt/pull/1058). Thanks @abolz. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1386 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1387 |
- Fixed handling of output iterators in `formatter` specialization for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1388 |
ranges (https://github.com/fmtlib/fmt/issues/1064). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1389 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1390 |
- Fixed handling of exotic character types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1391 |
(https://github.com/fmtlib/fmt/issues/1188). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1392 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1393 |
- Made chrono formatting work with exceptions disabled |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1394 |
(https://github.com/fmtlib/fmt/issues/1062). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1395 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1396 |
- Fixed DLL visibility issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1397 |
(https://github.com/fmtlib/fmt/pull/1134, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1398 |
https://github.com/fmtlib/fmt/pull/1147). Thanks @denchat. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1399 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1400 |
- Disabled the use of UDL template extension on GCC 9 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1401 |
(https://github.com/fmtlib/fmt/issues/1148). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1402 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1403 |
- Removed misplaced `format` compile-time checks from `printf` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1404 |
(https://github.com/fmtlib/fmt/issues/1173). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1405 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1406 |
- Fixed issues in the experimental floating-point formatter |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1407 |
(https://github.com/fmtlib/fmt/issues/1072, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1408 |
https://github.com/fmtlib/fmt/issues/1129, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1409 |
https://github.com/fmtlib/fmt/issues/1153, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1410 |
https://github.com/fmtlib/fmt/pull/1155, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1411 |
https://github.com/fmtlib/fmt/issues/1210, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1412 |
https://github.com/fmtlib/fmt/issues/1222). Thanks @alabuzhev. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1413 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1414 |
- Fixed bugs discovered by fuzzing or during fuzzing integration |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1415 |
(https://github.com/fmtlib/fmt/issues/1124, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1416 |
https://github.com/fmtlib/fmt/issues/1127, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1417 |
https://github.com/fmtlib/fmt/issues/1132, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1418 |
https://github.com/fmtlib/fmt/pull/1135, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1419 |
https://github.com/fmtlib/fmt/issues/1136, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1420 |
https://github.com/fmtlib/fmt/issues/1141, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1421 |
https://github.com/fmtlib/fmt/issues/1142, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1422 |
https://github.com/fmtlib/fmt/issues/1178, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1423 |
https://github.com/fmtlib/fmt/issues/1179, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1424 |
https://github.com/fmtlib/fmt/issues/1194). Thanks @pauldreik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1425 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1426 |
- Fixed building tests on FreeBSD and Hurd |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1427 |
(https://github.com/fmtlib/fmt/issues/1043). Thanks @jackyf. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1428 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1429 |
- Fixed various warnings and compilation issues |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1430 |
(https://github.com/fmtlib/fmt/pull/998, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1431 |
https://github.com/fmtlib/fmt/pull/1006, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1432 |
https://github.com/fmtlib/fmt/issues/1008, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1433 |
https://github.com/fmtlib/fmt/issues/1011, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1434 |
https://github.com/fmtlib/fmt/issues/1025, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1435 |
https://github.com/fmtlib/fmt/pull/1027, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1436 |
https://github.com/fmtlib/fmt/pull/1028, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1437 |
https://github.com/fmtlib/fmt/pull/1029, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1438 |
https://github.com/fmtlib/fmt/pull/1030, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1439 |
https://github.com/fmtlib/fmt/pull/1031, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1440 |
https://github.com/fmtlib/fmt/pull/1054, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1441 |
https://github.com/fmtlib/fmt/issues/1063, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1442 |
https://github.com/fmtlib/fmt/pull/1068, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1443 |
https://github.com/fmtlib/fmt/pull/1074, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1444 |
https://github.com/fmtlib/fmt/pull/1075, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1445 |
https://github.com/fmtlib/fmt/pull/1079, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1446 |
https://github.com/fmtlib/fmt/pull/1086, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1447 |
https://github.com/fmtlib/fmt/issues/1088, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1448 |
https://github.com/fmtlib/fmt/pull/1089, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1449 |
https://github.com/fmtlib/fmt/pull/1094, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1450 |
https://github.com/fmtlib/fmt/issues/1101, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1451 |
https://github.com/fmtlib/fmt/pull/1102, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1452 |
https://github.com/fmtlib/fmt/issues/1105, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1453 |
https://github.com/fmtlib/fmt/pull/1107, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1454 |
https://github.com/fmtlib/fmt/issues/1115, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1455 |
https://github.com/fmtlib/fmt/issues/1117, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1456 |
https://github.com/fmtlib/fmt/issues/1118, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1457 |
https://github.com/fmtlib/fmt/issues/1120, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1458 |
https://github.com/fmtlib/fmt/issues/1123, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1459 |
https://github.com/fmtlib/fmt/pull/1139, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1460 |
https://github.com/fmtlib/fmt/issues/1140, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1461 |
https://github.com/fmtlib/fmt/issues/1143, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1462 |
https://github.com/fmtlib/fmt/pull/1144, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1463 |
https://github.com/fmtlib/fmt/pull/1150, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1464 |
https://github.com/fmtlib/fmt/pull/1151, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1465 |
https://github.com/fmtlib/fmt/issues/1152, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1466 |
https://github.com/fmtlib/fmt/issues/1154, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1467 |
https://github.com/fmtlib/fmt/issues/1156, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1468 |
https://github.com/fmtlib/fmt/pull/1159, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1469 |
https://github.com/fmtlib/fmt/issues/1175, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1470 |
https://github.com/fmtlib/fmt/issues/1181, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1471 |
https://github.com/fmtlib/fmt/issues/1186, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1472 |
https://github.com/fmtlib/fmt/pull/1187, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1473 |
https://github.com/fmtlib/fmt/pull/1191, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1474 |
https://github.com/fmtlib/fmt/issues/1197, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1475 |
https://github.com/fmtlib/fmt/issues/1200, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1476 |
https://github.com/fmtlib/fmt/issues/1203, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1477 |
https://github.com/fmtlib/fmt/issues/1205, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1478 |
https://github.com/fmtlib/fmt/pull/1206, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1479 |
https://github.com/fmtlib/fmt/issues/1213, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1480 |
https://github.com/fmtlib/fmt/issues/1214, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1481 |
https://github.com/fmtlib/fmt/pull/1217, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1482 |
https://github.com/fmtlib/fmt/issues/1228, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1483 |
https://github.com/fmtlib/fmt/pull/1230, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1484 |
https://github.com/fmtlib/fmt/issues/1232, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1485 |
https://github.com/fmtlib/fmt/pull/1235, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1486 |
https://github.com/fmtlib/fmt/pull/1236, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1487 |
https://github.com/fmtlib/fmt/issues/1240). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1488 |
Thanks @DanielaE, @mwinterb, @eliaskosunen, @morinmorin, @ricco19, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1489 |
@waywardmonkeys, @chronoxor, @remyabel, @pauldreik, @gsjaardema, @rcane, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1490 |
@mocabe, @denchat, @cjdb, @HazardyKnusperkeks, @vedranmiletic, @jackoalan, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1491 |
@DaanDeMeyer and @starkmapper. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1492 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1493 |
# 5.3.0 - 2018-12-28 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1494 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1495 |
- Introduced experimental chrono formatting support: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1496 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1497 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1498 |
#include <fmt/chrono.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1499 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1500 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1501 |
using namespace std::literals::chrono_literals; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1502 |
fmt::print("Default format: {} {}\n", 42s, 100ms); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1503 |
fmt::print("strftime-like format: {:%H:%M:%S}\n", 3h + 15min + 30s); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1504 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1505 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1506 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1507 |
prints: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1508 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1509 |
Default format: 42s 100ms |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1510 |
strftime-like format: 03:15:30 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1511 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1512 |
- Added experimental support for emphasis (bold, italic, underline, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1513 |
strikethrough), colored output to a file stream, and improved |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1514 |
colored formatting API |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1515 |
(https://github.com/fmtlib/fmt/pull/961, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1516 |
https://github.com/fmtlib/fmt/pull/967, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1517 |
https://github.com/fmtlib/fmt/pull/973): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1518 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1519 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1520 |
#include <fmt/color.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1521 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1522 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1523 |
fmt::print(fg(fmt::color::crimson) | fmt::emphasis::bold, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1524 |
"Hello, {}!\n", "world"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1525 |
fmt::print(fg(fmt::color::floral_white) | bg(fmt::color::slate_gray) | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1526 |
fmt::emphasis::underline, "OlĂĄ, {}!\n", "Mundo"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1527 |
fmt::print(fg(fmt::color::steel_blue) | fmt::emphasis::italic, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1528 |
"äœ ć„œ{}ïŒ\n", "äžç"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1529 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1530 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1531 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1532 |
prints the following on modern terminals with RGB color support: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1533 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1534 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1535 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1536 |
Thanks @Rakete1111. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1537 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1538 |
- Added support for 4-bit terminal colors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1539 |
(https://github.com/fmtlib/fmt/issues/968, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1540 |
https://github.com/fmtlib/fmt/pull/974) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1541 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1542 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1543 |
#include <fmt/color.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1544 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1545 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1546 |
print(fg(fmt::terminal_color::red), "stop\n"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1547 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1548 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1549 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1550 |
Note that these colors vary by terminal: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1551 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1552 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1553 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1554 |
Thanks @Rakete1111. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1555 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1556 |
- Parameterized formatting functions on the type of the format string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1557 |
(https://github.com/fmtlib/fmt/issues/880, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1558 |
https://github.com/fmtlib/fmt/pull/881, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1559 |
https://github.com/fmtlib/fmt/pull/883, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1560 |
https://github.com/fmtlib/fmt/pull/885, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1561 |
https://github.com/fmtlib/fmt/pull/897, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1562 |
https://github.com/fmtlib/fmt/issues/920). Any object of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1563 |
type `S` that has an overloaded `to_string_view(const S&)` returning |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1564 |
`fmt::string_view` can be used as a format string: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1565 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1566 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1567 |
namespace my_ns { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1568 |
inline string_view to_string_view(const my_string& s) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1569 |
return {s.data(), s.length()}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1570 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1571 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1572 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1573 |
std::string message = fmt::format(my_string("The answer is {}."), 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1574 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1575 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1576 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1577 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1578 |
- Made `std::string_view` work as a format string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1579 |
(https://github.com/fmtlib/fmt/pull/898): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1580 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1581 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1582 |
auto message = fmt::format(std::string_view("The answer is {}."), 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1583 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1584 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1585 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1586 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1587 |
- Added wide string support to compile-time format string checks |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1588 |
(https://github.com/fmtlib/fmt/pull/924): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1589 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1590 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1591 |
print(fmt(L"{:f}"), 42); // compile-time error: invalid type specifier |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1592 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1593 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1594 |
Thanks @XZiar. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1595 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1596 |
- Made colored print functions work with wide strings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1597 |
(https://github.com/fmtlib/fmt/pull/867): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1598 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1599 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1600 |
#include <fmt/color.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1601 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1602 |
int main() { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1603 |
print(fg(fmt::color::red), L"{}\n", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1604 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1605 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1606 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1607 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1608 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1609 |
- Introduced experimental Unicode support |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1610 |
(https://github.com/fmtlib/fmt/issues/628, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1611 |
https://github.com/fmtlib/fmt/pull/891): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1612 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1613 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1614 |
using namespace fmt::literals; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1615 |
auto s = fmt::format("{:*^5}"_u, "đ€Ą"_u); // s == "**đ€Ą**"_u |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1616 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1617 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1618 |
- Improved locale support: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1619 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1620 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1621 |
#include <fmt/locale.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1622 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1623 |
struct numpunct : std::numpunct<char> { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1624 |
protected: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1625 |
char do_thousands_sep() const override { return '~'; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1626 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1627 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1628 |
std::locale loc; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1629 |
auto s = fmt::format(std::locale(loc, new numpunct()), "{:n}", 1234567); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1630 |
// s == "1~234~567" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1631 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1632 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1633 |
- Constrained formatting functions on proper iterator types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1634 |
(https://github.com/fmtlib/fmt/pull/921). Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1635 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1636 |
- Added `make_printf_args` and `make_wprintf_args` functions |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1637 |
(https://github.com/fmtlib/fmt/pull/934). Thanks @tnovotny. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1638 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1639 |
- Deprecated `fmt::visit`, `parse_context`, and `wparse_context`. Use |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1640 |
`fmt::visit_format_arg`, `format_parse_context`, and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1641 |
`wformat_parse_context` instead. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1642 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1643 |
- Removed undocumented `basic_fixed_buffer` which has been superseded |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1644 |
by the iterator-based API |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1645 |
(https://github.com/fmtlib/fmt/issues/873, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1646 |
https://github.com/fmtlib/fmt/pull/902). Thanks @superfunc. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1647 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1648 |
- Disallowed repeated leading zeros in an argument ID: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1649 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1650 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1651 |
fmt::print("{000}", 42); // error |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1652 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1653 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1654 |
- Reintroduced support for gcc 4.4. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1655 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1656 |
- Fixed compilation on platforms with exotic `double` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1657 |
(https://github.com/fmtlib/fmt/issues/878). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1658 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1659 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1660 |
(https://github.com/fmtlib/fmt/issues/164, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1661 |
https://github.com/fmtlib/fmt/issues/877, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1662 |
https://github.com/fmtlib/fmt/pull/901, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1663 |
https://github.com/fmtlib/fmt/pull/906, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1664 |
https://github.com/fmtlib/fmt/pull/979). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1665 |
Thanks @kookjr, @DarkDimius and @HecticSerenity. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1666 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1667 |
- Added pkgconfig support which makes it easier to consume the library |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1668 |
from meson and other build systems |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1669 |
(https://github.com/fmtlib/fmt/pull/916). Thanks @colemickens. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1670 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1671 |
- Various build improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1672 |
(https://github.com/fmtlib/fmt/pull/909, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1673 |
https://github.com/fmtlib/fmt/pull/926, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1674 |
https://github.com/fmtlib/fmt/pull/937, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1675 |
https://github.com/fmtlib/fmt/pull/953, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1676 |
https://github.com/fmtlib/fmt/pull/959). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1677 |
Thanks @tchaikov, @luncliff, @AndreasSchoenle, @hotwatermorning and @Zefz. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1678 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1679 |
- Improved `string_view` construction performance |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1680 |
(https://github.com/fmtlib/fmt/pull/914). Thanks @gabime. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1681 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1682 |
- Fixed non-matching char types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1683 |
(https://github.com/fmtlib/fmt/pull/895). Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1684 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1685 |
- Fixed `format_to_n` with `std::back_insert_iterator` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1686 |
(https://github.com/fmtlib/fmt/pull/913). Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1687 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1688 |
- Fixed locale-dependent formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1689 |
(https://github.com/fmtlib/fmt/issues/905). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1690 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1691 |
- Fixed various compiler warnings and errors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1692 |
(https://github.com/fmtlib/fmt/pull/882, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1693 |
https://github.com/fmtlib/fmt/pull/886, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1694 |
https://github.com/fmtlib/fmt/pull/933, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1695 |
https://github.com/fmtlib/fmt/pull/941, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1696 |
https://github.com/fmtlib/fmt/issues/931, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1697 |
https://github.com/fmtlib/fmt/pull/943, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1698 |
https://github.com/fmtlib/fmt/pull/954, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1699 |
https://github.com/fmtlib/fmt/pull/956, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1700 |
https://github.com/fmtlib/fmt/pull/962, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1701 |
https://github.com/fmtlib/fmt/issues/965, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1702 |
https://github.com/fmtlib/fmt/issues/977, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1703 |
https://github.com/fmtlib/fmt/pull/983, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1704 |
https://github.com/fmtlib/fmt/pull/989). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1705 |
Thanks @Luthaf, @stevenhoving, @christinaa, @lgritz, @DanielaE, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1706 |
@0x8000-0000 and @liuping1997. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1707 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1708 |
# 5.2.1 - 2018-09-21 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1709 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1710 |
- Fixed `visit` lookup issues on gcc 7 & 8 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1711 |
(https://github.com/fmtlib/fmt/pull/870). Thanks @medithe. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1712 |
- Fixed linkage errors on older gcc. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1713 |
- Prevented `fmt/range.h` from specializing `fmt::basic_string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1714 |
(https://github.com/fmtlib/fmt/issues/865, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1715 |
https://github.com/fmtlib/fmt/pull/868). Thanks @hhggit. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1716 |
- Improved error message when formatting unknown types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1717 |
(https://github.com/fmtlib/fmt/pull/872). Thanks @foonathan. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1718 |
- Disabled templated user-defined literals when compiled under nvcc |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1719 |
(https://github.com/fmtlib/fmt/pull/875). Thanks @CandyGumdrop. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1720 |
- Fixed `format_to` formatting to `wmemory_buffer` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1721 |
(https://github.com/fmtlib/fmt/issues/874). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1722 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1723 |
# 5.2.0 - 2018-09-13 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1724 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1725 |
- Optimized format string parsing and argument processing which |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1726 |
resulted in up to 5x speed up on long format strings and significant |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1727 |
performance boost on various benchmarks. For example, version 5.2 is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1728 |
2.22x faster than 5.1 on decimal integer formatting with `format_to` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1729 |
(macOS, clang-902.0.39.2): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1730 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1731 |
| Method | Time, s | Speedup | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1732 |
| -------------------------- | --------------: | ------: | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1733 |
| fmt::format 5.1 | 0.58 | | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1734 |
| fmt::format 5.2 | 0.35 | 1.66x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1735 |
| fmt::format_to 5.1 | 0.51 | | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1736 |
| fmt::format_to 5.2 | 0.23 | 2.22x | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1737 |
| sprintf | 0.71 | | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1738 |
| std::to_string | 1.01 | | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1739 |
| std::stringstream | 1.73 | | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1740 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1741 |
- Changed the `fmt` macro from opt-out to opt-in to prevent name |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1742 |
collisions. To enable it define the `FMT_STRING_ALIAS` macro to 1 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1743 |
before including `fmt/format.h`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1744 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1745 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1746 |
#define FMT_STRING_ALIAS 1 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1747 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1748 |
std::string answer = format(fmt("{}"), 42); |
| 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 |
- Added compile-time format string checks to `format_to` overload that |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1752 |
takes `fmt::memory_buffer` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1753 |
(https://github.com/fmtlib/fmt/issues/783): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1754 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1755 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1756 |
fmt::memory_buffer buf; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1757 |
// Compile-time error: invalid type specifier. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1758 |
fmt::format_to(buf, fmt("{:d}"), "foo"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1759 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1760 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1761 |
- Moved experimental color support to `fmt/color.h` and enabled the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1762 |
new API by default. The old API can be enabled by defining the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1763 |
`FMT_DEPRECATED_COLORS` macro. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1764 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1765 |
- Added formatting support for types explicitly convertible to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1766 |
`fmt::string_view`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1767 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1768 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1769 |
struct foo { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1770 |
explicit operator fmt::string_view() const { return "foo"; } |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1771 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1772 |
auto s = format("{}", foo()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1773 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1774 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1775 |
In particular, this makes formatting function work with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1776 |
`folly::StringPiece`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1777 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1778 |
- Implemented preliminary support for `char*_t` by replacing the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1779 |
`format` function overloads with a single function template |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1780 |
parameterized on the string type. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1781 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1782 |
- Added support for dynamic argument lists |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1783 |
(https://github.com/fmtlib/fmt/issues/814, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1784 |
https://github.com/fmtlib/fmt/pull/819). Thanks @MikePopoloski. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1785 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1786 |
- Reduced executable size overhead for embedded targets using newlib |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1787 |
nano by making locale dependency optional |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1788 |
(https://github.com/fmtlib/fmt/pull/839). Thanks @teajay-fr. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1789 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1790 |
- Keep `noexcept` specifier when exceptions are disabled |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1791 |
(https://github.com/fmtlib/fmt/issues/801, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1792 |
https://github.com/fmtlib/fmt/pull/810). Thanks @qis. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1793 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1794 |
- Fixed formatting of user-defined types providing `operator<<` with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1795 |
`format_to_n` (https://github.com/fmtlib/fmt/pull/806). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1796 |
Thanks @mkurdej. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1797 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1798 |
- Fixed dynamic linkage of new symbols |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1799 |
(https://github.com/fmtlib/fmt/issues/808). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1800 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1801 |
- Fixed global initialization issue |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1802 |
(https://github.com/fmtlib/fmt/issues/807): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1803 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1804 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1805 |
// This works on compilers with constexpr support. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1806 |
static const std::string answer = fmt::format("{}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1807 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1808 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1809 |
- Fixed various compiler warnings and errors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1810 |
(https://github.com/fmtlib/fmt/pull/804, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1811 |
https://github.com/fmtlib/fmt/issues/809, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1812 |
https://github.com/fmtlib/fmt/pull/811, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1813 |
https://github.com/fmtlib/fmt/issues/822, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1814 |
https://github.com/fmtlib/fmt/pull/827, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1815 |
https://github.com/fmtlib/fmt/issues/830, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1816 |
https://github.com/fmtlib/fmt/pull/838, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1817 |
https://github.com/fmtlib/fmt/issues/843, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1818 |
https://github.com/fmtlib/fmt/pull/844, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1819 |
https://github.com/fmtlib/fmt/issues/851, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1820 |
https://github.com/fmtlib/fmt/pull/852, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1821 |
https://github.com/fmtlib/fmt/pull/854). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1822 |
Thanks @henryiii, @medithe, and @eliasdaler. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1823 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1824 |
# 5.1.0 - 2018-07-05 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1825 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1826 |
- Added experimental support for RGB color output enabled with the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1827 |
`FMT_EXTENDED_COLORS` macro: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1828 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1829 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1830 |
#define FMT_EXTENDED_COLORS |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1831 |
#define FMT_HEADER_ONLY // or compile fmt with FMT_EXTENDED_COLORS defined |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1832 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1833 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1834 |
fmt::print(fmt::color::steel_blue, "Some beautiful text"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1835 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1836 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1837 |
The old API (the `print_colored` and `vprint_colored` functions and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1838 |
the `color` enum) is now deprecated. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1839 |
(https://github.com/fmtlib/fmt/issues/762 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1840 |
https://github.com/fmtlib/fmt/pull/767). thanks @Remotion. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1841 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1842 |
- Added quotes to strings in ranges and tuples |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1843 |
(https://github.com/fmtlib/fmt/pull/766). Thanks @Remotion. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1844 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1845 |
- Made `format_to` work with `basic_memory_buffer` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1846 |
(https://github.com/fmtlib/fmt/issues/776). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1847 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1848 |
- Added `vformat_to_n` and `wchar_t` overload of `format_to_n` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1849 |
(https://github.com/fmtlib/fmt/issues/764, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1850 |
https://github.com/fmtlib/fmt/issues/769). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1851 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1852 |
- Made `is_range` and `is_tuple_like` part of public (experimental) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1853 |
API to allow specialization for user-defined types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1854 |
(https://github.com/fmtlib/fmt/issues/751, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1855 |
https://github.com/fmtlib/fmt/pull/759). Thanks @drrlvn. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1856 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1857 |
- Added more compilers to continuous integration and increased |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1858 |
`FMT_PEDANTIC` warning levels |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1859 |
(https://github.com/fmtlib/fmt/pull/736). Thanks @eliaskosunen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1860 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1861 |
- Fixed compilation with MSVC 2013. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1862 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1863 |
- Fixed handling of user-defined types in `format_to` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1864 |
(https://github.com/fmtlib/fmt/issues/793). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1865 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1866 |
- Forced linking of inline `vformat` functions into the library |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1867 |
(https://github.com/fmtlib/fmt/issues/795). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1868 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1869 |
- Fixed incorrect call to on_align in `'{:}='` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1870 |
(https://github.com/fmtlib/fmt/issues/750). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1871 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1872 |
- Fixed floating-point formatting to a non-back_insert_iterator with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1873 |
sign & numeric alignment specified |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1874 |
(https://github.com/fmtlib/fmt/issues/756). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1875 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1876 |
- Fixed formatting to an array with `format_to_n` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1877 |
(https://github.com/fmtlib/fmt/issues/778). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1878 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1879 |
- Fixed formatting of more than 15 named arguments |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1880 |
(https://github.com/fmtlib/fmt/issues/754). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1881 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1882 |
- Fixed handling of compile-time strings when including |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1883 |
`fmt/ostream.h`. (https://github.com/fmtlib/fmt/issues/768). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1884 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1885 |
- Fixed various compiler warnings and errors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1886 |
(https://github.com/fmtlib/fmt/issues/742, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1887 |
https://github.com/fmtlib/fmt/issues/748, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1888 |
https://github.com/fmtlib/fmt/issues/752, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1889 |
https://github.com/fmtlib/fmt/issues/770, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1890 |
https://github.com/fmtlib/fmt/pull/775, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1891 |
https://github.com/fmtlib/fmt/issues/779, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1892 |
https://github.com/fmtlib/fmt/pull/780, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1893 |
https://github.com/fmtlib/fmt/pull/790, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1894 |
https://github.com/fmtlib/fmt/pull/792, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1895 |
https://github.com/fmtlib/fmt/pull/800). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1896 |
Thanks @Remotion, @gabime, @foonathan, @Dark-Passenger and @0x8000-0000. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1897 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1898 |
# 5.0.0 - 2018-05-21 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1899 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1900 |
- Added a requirement for partial C++11 support, most importantly |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1901 |
variadic templates and type traits, and dropped `FMT_VARIADIC_*` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1902 |
emulation macros. Variadic templates are available since GCC 4.4, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1903 |
Clang 2.9 and MSVC 18.0 (2013). For older compilers use {fmt} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1904 |
[version 4.x](https://github.com/fmtlib/fmt/releases/tag/4.1.0) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1905 |
which continues to be maintained and works with C++98 compilers. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1906 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1907 |
- Renamed symbols to follow standard C++ naming conventions and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1908 |
proposed a subset of the library for standardization in [P0645R2 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1909 |
Text Formatting](https://wg21.link/P0645). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1910 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1911 |
- Implemented `constexpr` parsing of format strings and [compile-time |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1912 |
format string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1913 |
checks](https://fmt.dev/latest/api.html#compile-time-format-string-checks). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1914 |
For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1915 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1916 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1917 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1918 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1919 |
std::string s = format(fmt("{:d}"), "foo"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1920 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1921 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1922 |
gives a compile-time error because `d` is an invalid specifier for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1923 |
strings ([godbolt](https://godbolt.org/g/rnCy9Q)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1924 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1925 |
... |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1926 |
<source>:4:19: note: in instantiation of function template specialization 'fmt::v5::format<S, char [4]>' requested here |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1927 |
std::string s = format(fmt("{:d}"), "foo"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1928 |
^ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1929 |
format.h:1337:13: note: non-constexpr function 'on_error' cannot be used in a constant expression |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1930 |
handler.on_error("invalid type specifier"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1931 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1932 |
Compile-time checks require relaxed `constexpr` (C++14 feature) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1933 |
support. If the latter is not available, checks will be performed at |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1934 |
runtime. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1935 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1936 |
- Separated format string parsing and formatting in the extension API |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1937 |
to enable compile-time format string processing. For example |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1938 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1939 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1940 |
struct Answer {}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1941 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1942 |
namespace fmt { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1943 |
template <> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1944 |
struct formatter<Answer> { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1945 |
constexpr auto parse(parse_context& ctx) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1946 |
auto it = ctx.begin(); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1947 |
spec = *it; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1948 |
if (spec != 'd' && spec != 's') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1949 |
throw format_error("invalid specifier"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1950 |
return ++it; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1951 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1952 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1953 |
template <typename FormatContext> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1954 |
auto format(Answer, FormatContext& ctx) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1955 |
return spec == 's' ? |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1956 |
format_to(ctx.begin(), "{}", "fourty-two") : |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1957 |
format_to(ctx.begin(), "{}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1958 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1959 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1960 |
char spec = 0; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1961 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1962 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1963 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1964 |
std::string s = format(fmt("{:x}"), Answer()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1965 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1966 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1967 |
gives a compile-time error due to invalid format specifier |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1968 |
([godbolt](https://godbolt.org/g/2jQ1Dv)): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1969 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1970 |
... |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1971 |
<source>:12:45: error: expression '<throw-expression>' is not a constant expression |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1972 |
throw format_error("invalid specifier"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1973 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1974 |
- Added [iterator |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1975 |
support](https://fmt.dev/latest/api.html#output-iterator-support): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1976 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1977 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1978 |
#include <vector> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1979 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1980 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1981 |
std::vector<char> out; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1982 |
fmt::format_to(std::back_inserter(out), "{}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1983 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1984 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1985 |
- Added the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1986 |
[format_to_n](https://fmt.dev/latest/api.html#_CPPv2N3fmt11format_to_nE8OutputItNSt6size_tE11string_viewDpRK4Args) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1987 |
function that restricts the output to the specified number of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1988 |
characters (https://github.com/fmtlib/fmt/issues/298): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1989 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1990 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1991 |
char out[4]; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1992 |
fmt::format_to_n(out, sizeof(out), "{}", 12345); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1993 |
// out == "1234" (without terminating '\0') |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1994 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1995 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1996 |
- Added the [formatted_size]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1997 |
https://fmt.dev/latest/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1998 |
function for computing the output size: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
1999 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2000 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2001 |
#include <fmt/format.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2002 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2003 |
auto size = fmt::formatted_size("{}", 12345); // size == 5 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2004 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2005 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2006 |
- Improved compile times by reducing dependencies on standard headers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2007 |
and providing a lightweight [core |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2008 |
API](https://fmt.dev/latest/api.html#core-api): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2009 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2010 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2011 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2012 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2013 |
fmt::print("The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2014 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2015 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2016 |
See [Compile time and code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2017 |
bloat](https://github.com/fmtlib/fmt#compile-time-and-code-bloat). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2018 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2019 |
- Added the [make_format_args]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2020 |
https://fmt.dev/latest/api.html#_CPPv2N3fmt16make_format_argsEDpRK4Args) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2021 |
function for capturing formatting arguments: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2022 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2023 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2024 |
// Prints formatted error message. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2025 |
void vreport_error(const char *format, fmt::format_args args) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2026 |
fmt::print("Error: "); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2027 |
fmt::vprint(format, args); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2028 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2029 |
template <typename... Args> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2030 |
void report_error(const char *format, const Args & ... args) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2031 |
vreport_error(format, fmt::make_format_args(args...)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2032 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2033 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2034 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2035 |
- Added the `make_printf_args` function for capturing `printf` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2036 |
arguments (https://github.com/fmtlib/fmt/issues/687, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2037 |
https://github.com/fmtlib/fmt/pull/694). Thanks @Kronuz. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2038 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2039 |
- Added prefix `v` to non-variadic functions taking `format_args` to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2040 |
distinguish them from variadic ones: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2041 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2042 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2043 |
std::string vformat(string_view format_str, format_args args); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2044 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2045 |
template <typename... Args> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2046 |
std::string format(string_view format_str, const Args & ... args); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2047 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2048 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2049 |
- Added experimental support for formatting ranges, containers and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2050 |
tuple-like types in `fmt/ranges.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2051 |
(https://github.com/fmtlib/fmt/pull/735): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2052 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2053 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2054 |
#include <fmt/ranges.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2055 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2056 |
std::vector<int> v = {1, 2, 3}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2057 |
fmt::print("{}", v); // prints {1, 2, 3} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2058 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2059 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2060 |
Thanks @Remotion. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2061 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2062 |
- Implemented `wchar_t` date and time formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2063 |
(https://github.com/fmtlib/fmt/pull/712): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2064 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2065 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2066 |
#include <fmt/time.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2067 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2068 |
std::time_t t = std::time(nullptr); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2069 |
auto s = fmt::format(L"The date is {:%Y-%m-%d}.", *std::localtime(&t)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2070 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2071 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2072 |
Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2073 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2074 |
- Provided more wide string overloads |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2075 |
(https://github.com/fmtlib/fmt/pull/724). Thanks @DanielaE. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2076 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2077 |
- Switched from a custom null-terminated string view class to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2078 |
`string_view` in the format API and provided `fmt::string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2079 |
which implements a subset of `std::string_view` API for pre-C++17 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2080 |
systems. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2081 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2082 |
- Added support for `std::experimental::string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2083 |
(https://github.com/fmtlib/fmt/pull/607): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2084 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2085 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2086 |
#include <fmt/core.h> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2087 |
#include <experimental/string_view> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2088 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2089 |
fmt::print("{}", std::experimental::string_view("foo")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2090 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2091 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2092 |
Thanks @virgiliofornazin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2093 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2094 |
- Allowed mixing named and automatic arguments: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2095 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2096 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2097 |
fmt::format("{} {two}", 1, fmt::arg("two", 2)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2098 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2099 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2100 |
- Removed the write API in favor of the [format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2101 |
API](https://fmt.dev/latest/api.html#format-api) with compile-time |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2102 |
handling of format strings. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2103 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2104 |
- Disallowed formatting of multibyte strings into a wide character |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2105 |
target (https://github.com/fmtlib/fmt/pull/606). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2106 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2107 |
- Improved documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2108 |
(https://github.com/fmtlib/fmt/pull/515, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2109 |
https://github.com/fmtlib/fmt/issues/614, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2110 |
https://github.com/fmtlib/fmt/pull/617, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2111 |
https://github.com/fmtlib/fmt/pull/661, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2112 |
https://github.com/fmtlib/fmt/pull/680). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2113 |
Thanks @ibell, @mihaitodor and @johnthagen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2114 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2115 |
- Implemented more efficient handling of large number of format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2116 |
arguments. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2117 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2118 |
- Introduced an inline namespace for symbol versioning. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2119 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2120 |
- Added debug postfix `d` to the `fmt` library name |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2121 |
(https://github.com/fmtlib/fmt/issues/636). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2122 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2123 |
- Removed unnecessary `fmt/` prefix in includes |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2124 |
(https://github.com/fmtlib/fmt/pull/397). Thanks @chronoxor. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2125 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2126 |
- Moved `fmt/*.h` to `include/fmt/*.h` to prevent irrelevant files and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2127 |
directories appearing on the include search paths when fmt is used |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2128 |
as a subproject and moved source files to the `src` directory. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2129 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2130 |
- Added qmake project file `support/fmt.pro` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2131 |
(https://github.com/fmtlib/fmt/pull/641). Thanks @cowo78. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2132 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2133 |
- Added Gradle build file `support/build.gradle` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2134 |
(https://github.com/fmtlib/fmt/pull/649). Thanks @luncliff. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2135 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2136 |
- Removed `FMT_CPPFORMAT` CMake option. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2137 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2138 |
- Fixed a name conflict with the macro `CHAR_WIDTH` in glibc |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2139 |
(https://github.com/fmtlib/fmt/pull/616). Thanks @aroig. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2140 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2141 |
- Fixed handling of nested braces in `fmt::join` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2142 |
(https://github.com/fmtlib/fmt/issues/638). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2143 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2144 |
- Added `SOURCELINK_SUFFIX` for compatibility with Sphinx 1.5 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2145 |
(https://github.com/fmtlib/fmt/pull/497). Thanks @ginggs. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2146 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2147 |
- Added a missing `inline` in the header-only mode |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2148 |
(https://github.com/fmtlib/fmt/pull/626). Thanks @aroig. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2149 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2150 |
- Fixed various compiler warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2151 |
(https://github.com/fmtlib/fmt/pull/640, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2152 |
https://github.com/fmtlib/fmt/pull/656, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2153 |
https://github.com/fmtlib/fmt/pull/679, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2154 |
https://github.com/fmtlib/fmt/pull/681, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2155 |
https://github.com/fmtlib/fmt/pull/705, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2156 |
https://github.com/fmtlib/fmt/issues/715, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2157 |
https://github.com/fmtlib/fmt/pull/717, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2158 |
https://github.com/fmtlib/fmt/pull/720, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2159 |
https://github.com/fmtlib/fmt/pull/723, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2160 |
https://github.com/fmtlib/fmt/pull/726, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2161 |
https://github.com/fmtlib/fmt/pull/730, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2162 |
https://github.com/fmtlib/fmt/pull/739). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2163 |
Thanks @peterbell10, @LarsGullik, @foonathan, @eliaskosunen, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2164 |
@christianparpart, @DanielaE and @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2165 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2166 |
- Worked around an MSVC bug and fixed several warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2167 |
(https://github.com/fmtlib/fmt/pull/653). Thanks @alabuzhev. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2168 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2169 |
- Worked around GCC bug 67371 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2170 |
(https://github.com/fmtlib/fmt/issues/682). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2171 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2172 |
- Fixed compilation with `-fno-exceptions` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2173 |
(https://github.com/fmtlib/fmt/pull/655). Thanks @chenxiaolong. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2174 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2175 |
- Made `constexpr remove_prefix` gcc version check tighter |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2176 |
(https://github.com/fmtlib/fmt/issues/648). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2177 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2178 |
- Renamed internal type enum constants to prevent collision with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2179 |
poorly written C libraries |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2180 |
(https://github.com/fmtlib/fmt/issues/644). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2181 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2182 |
- Added detection of `wostream operator<<` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2183 |
(https://github.com/fmtlib/fmt/issues/650). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2184 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2185 |
- Fixed compilation on OpenBSD |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2186 |
(https://github.com/fmtlib/fmt/pull/660). Thanks @hubslave. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2187 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2188 |
- Fixed compilation on FreeBSD 12 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2189 |
(https://github.com/fmtlib/fmt/pull/732). Thanks @dankm. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2190 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2191 |
- Fixed compilation when there is a mismatch between `-std` options |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2192 |
between the library and user code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2193 |
(https://github.com/fmtlib/fmt/issues/664). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2194 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2195 |
- Fixed compilation with GCC 7 and `-std=c++11` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2196 |
(https://github.com/fmtlib/fmt/issues/734). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2197 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2198 |
- Improved generated binary code on GCC 7 and older |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2199 |
(https://github.com/fmtlib/fmt/issues/668). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2200 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2201 |
- Fixed handling of numeric alignment with no width |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2202 |
(https://github.com/fmtlib/fmt/issues/675). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2203 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2204 |
- Fixed handling of empty strings in UTF8/16 converters |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2205 |
(https://github.com/fmtlib/fmt/pull/676). Thanks @vgalka-sl. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2206 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2207 |
- Fixed formatting of an empty `string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2208 |
(https://github.com/fmtlib/fmt/issues/689). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2209 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2210 |
- Fixed detection of `string_view` on libc++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2211 |
(https://github.com/fmtlib/fmt/issues/686). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2212 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2213 |
- Fixed DLL issues (https://github.com/fmtlib/fmt/pull/696). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2214 |
Thanks @sebkoenig. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2215 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2216 |
- Fixed compile checks for mixing narrow and wide strings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2217 |
(https://github.com/fmtlib/fmt/issues/690). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2218 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2219 |
- Disabled unsafe implicit conversion to `std::string` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2220 |
(https://github.com/fmtlib/fmt/issues/729). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2221 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2222 |
- Fixed handling of reused format specs (as in `fmt::join`) for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2223 |
pointers (https://github.com/fmtlib/fmt/pull/725). Thanks @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2224 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2225 |
- Fixed installation of `fmt/ranges.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2226 |
(https://github.com/fmtlib/fmt/pull/738). Thanks @sv1990. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2227 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2228 |
# 4.1.0 - 2017-12-20 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2229 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2230 |
- Added `fmt::to_wstring()` in addition to `fmt::to_string()` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2231 |
(https://github.com/fmtlib/fmt/pull/559). Thanks @alabuzhev. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2232 |
- Added support for C++17 `std::string_view` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2233 |
(https://github.com/fmtlib/fmt/pull/571 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2234 |
https://github.com/fmtlib/fmt/pull/578). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2235 |
Thanks @thelostt and @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2236 |
- Enabled stream exceptions to catch errors |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2237 |
(https://github.com/fmtlib/fmt/issues/581). Thanks @crusader-mike. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2238 |
- Allowed formatting of class hierarchies with `fmt::format_arg()` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2239 |
(https://github.com/fmtlib/fmt/pull/547). Thanks @rollbear. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2240 |
- Removed limitations on character types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2241 |
(https://github.com/fmtlib/fmt/pull/563). Thanks @Yelnats321. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2242 |
- Conditionally enabled use of `std::allocator_traits` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2243 |
(https://github.com/fmtlib/fmt/pull/583). Thanks @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2244 |
- Added support for `const` variadic member function emulation with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2245 |
`FMT_VARIADIC_CONST` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2246 |
(https://github.com/fmtlib/fmt/pull/591). Thanks @ludekvodicka. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2247 |
- Various bugfixes: bad overflow check, unsupported implicit type |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2248 |
conversion when determining formatting function, test segfaults |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2249 |
(https://github.com/fmtlib/fmt/issues/551), ill-formed |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2250 |
macros (https://github.com/fmtlib/fmt/pull/542) and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2251 |
ambiguous overloads |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2252 |
(https://github.com/fmtlib/fmt/issues/580). Thanks @xylosper. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2253 |
- Prevented warnings on MSVC |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2254 |
(https://github.com/fmtlib/fmt/pull/605, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2255 |
https://github.com/fmtlib/fmt/pull/602, and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2256 |
https://github.com/fmtlib/fmt/pull/545), clang |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2257 |
(https://github.com/fmtlib/fmt/pull/582), GCC |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2258 |
(https://github.com/fmtlib/fmt/issues/573), various |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2259 |
conversion warnings (https://github.com/fmtlib/fmt/pull/609, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2260 |
https://github.com/fmtlib/fmt/pull/567, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2261 |
https://github.com/fmtlib/fmt/pull/553 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2262 |
https://github.com/fmtlib/fmt/pull/553), and added |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2263 |
`override` and `[[noreturn]]` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2264 |
(https://github.com/fmtlib/fmt/pull/549 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2265 |
https://github.com/fmtlib/fmt/issues/555). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2266 |
Thanks @alabuzhev, @virgiliofornazin, @alexanderbock, @yumetodo, @VaderY, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2267 |
@jpcima, @thelostt and @Manu343726. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2268 |
- Improved CMake: Used `GNUInstallDirs` to set installation location |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2269 |
(https://github.com/fmtlib/fmt/pull/610) and fixed warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2270 |
(https://github.com/fmtlib/fmt/pull/536 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2271 |
https://github.com/fmtlib/fmt/pull/556). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2272 |
Thanks @mikecrowe, @evgen231 and @henryiii. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2273 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2274 |
# 4.0.0 - 2017-06-27 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2275 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2276 |
- Removed old compatibility headers `cppformat/*.h` and CMake options |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2277 |
(https://github.com/fmtlib/fmt/pull/527). Thanks @maddinat0r. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2278 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2279 |
- Added `string.h` containing `fmt::to_string()` as alternative to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2280 |
`std::to_string()` as well as other string writer functionality |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2281 |
(https://github.com/fmtlib/fmt/issues/326 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2282 |
https://github.com/fmtlib/fmt/pull/441): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2283 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2284 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2285 |
#include "fmt/string.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2286 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2287 |
std::string answer = fmt::to_string(42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2288 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2289 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2290 |
Thanks @glebov-andrey. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2291 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2292 |
- Moved `fmt::printf()` to new `printf.h` header and allowed `%s` as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2293 |
generic specifier (https://github.com/fmtlib/fmt/pull/453), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2294 |
made `%.f` more conformant to regular `printf()` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2295 |
(https://github.com/fmtlib/fmt/pull/490), added custom |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2296 |
writer support (https://github.com/fmtlib/fmt/issues/476) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2297 |
and implemented missing custom argument formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2298 |
(https://github.com/fmtlib/fmt/pull/339 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2299 |
https://github.com/fmtlib/fmt/pull/340): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2300 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2301 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2302 |
#include "fmt/printf.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2303 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2304 |
// %s format specifier can be used with any argument type. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2305 |
fmt::printf("%s", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2306 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2307 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2308 |
Thanks @mojoBrendan, @manylegged and @spacemoose. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2309 |
See also https://github.com/fmtlib/fmt/issues/360, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2310 |
https://github.com/fmtlib/fmt/issues/335 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2311 |
https://github.com/fmtlib/fmt/issues/331. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2312 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2313 |
- Added `container.h` containing a `BasicContainerWriter` to write to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2314 |
containers like `std::vector` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2315 |
(https://github.com/fmtlib/fmt/pull/450). Thanks @polyvertex. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2316 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2317 |
- Added `fmt::join()` function that takes a range and formats its |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2318 |
elements separated by a given string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2319 |
(https://github.com/fmtlib/fmt/pull/466): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2320 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2321 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2322 |
#include "fmt/format.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2323 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2324 |
std::vector<double> v = {1.2, 3.4, 5.6}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2325 |
// Prints "(+01.20, +03.40, +05.60)". |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2326 |
fmt::print("({:+06.2f})", fmt::join(v.begin(), v.end(), ", ")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2327 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2328 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2329 |
Thanks @olivier80. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2330 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2331 |
- Added support for custom formatting specifications to simplify |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2332 |
customization of built-in formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2333 |
(https://github.com/fmtlib/fmt/pull/444). Thanks @polyvertex. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2334 |
See also https://github.com/fmtlib/fmt/issues/439. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2335 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2336 |
- Added `fmt::format_system_error()` for error code formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2337 |
(https://github.com/fmtlib/fmt/issues/323 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2338 |
https://github.com/fmtlib/fmt/pull/526). Thanks @maddinat0r. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2339 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2340 |
- Added thread-safe `fmt::localtime()` and `fmt::gmtime()` as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2341 |
replacement for the standard version to `time.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2342 |
(https://github.com/fmtlib/fmt/pull/396). Thanks @codicodi. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2343 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2344 |
- Internal improvements to `NamedArg` and `ArgLists` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2345 |
(https://github.com/fmtlib/fmt/pull/389 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2346 |
https://github.com/fmtlib/fmt/pull/390). Thanks @chronoxor. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2347 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2348 |
- Fixed crash due to bug in `FormatBuf` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2349 |
(https://github.com/fmtlib/fmt/pull/493). Thanks @effzeh. See also |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2350 |
https://github.com/fmtlib/fmt/issues/480 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2351 |
https://github.com/fmtlib/fmt/issues/491. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2352 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2353 |
- Fixed handling of wide strings in `fmt::StringWriter`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2354 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2355 |
- Improved compiler error messages |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2356 |
(https://github.com/fmtlib/fmt/issues/357). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2357 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2358 |
- Fixed various warnings and issues with various compilers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2359 |
(https://github.com/fmtlib/fmt/pull/494, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2360 |
https://github.com/fmtlib/fmt/pull/499, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2361 |
https://github.com/fmtlib/fmt/pull/483, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2362 |
https://github.com/fmtlib/fmt/pull/485, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2363 |
https://github.com/fmtlib/fmt/pull/482, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2364 |
https://github.com/fmtlib/fmt/pull/475, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2365 |
https://github.com/fmtlib/fmt/pull/473 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2366 |
https://github.com/fmtlib/fmt/pull/414). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2367 |
Thanks @chronoxor, @zhaohuaxishi, @pkestene, @dschmidt and @0x414c. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2368 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2369 |
- Improved CMake: targets are now namespaced |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2370 |
(https://github.com/fmtlib/fmt/pull/511 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2371 |
https://github.com/fmtlib/fmt/pull/513), supported |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2372 |
header-only `printf.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2373 |
(https://github.com/fmtlib/fmt/pull/354), fixed issue with |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2374 |
minimal supported library subset |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2375 |
(https://github.com/fmtlib/fmt/issues/418, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2376 |
https://github.com/fmtlib/fmt/pull/419 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2377 |
https://github.com/fmtlib/fmt/pull/420). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2378 |
Thanks @bjoernthiel, @niosHD, @LogicalKnight and @alabuzhev. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2379 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2380 |
- Improved documentation (https://github.com/fmtlib/fmt/pull/393). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2381 |
Thanks @pwm1234. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2382 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2383 |
# 3.0.2 - 2017-06-14 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2384 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2385 |
- Added `FMT_VERSION` macro |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2386 |
(https://github.com/fmtlib/fmt/issues/411). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2387 |
- Used `FMT_NULL` instead of literal `0` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2388 |
(https://github.com/fmtlib/fmt/pull/409). Thanks @alabuzhev. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2389 |
- Added extern templates for `format_float` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2390 |
(https://github.com/fmtlib/fmt/issues/413). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2391 |
- Fixed implicit conversion issue |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2392 |
(https://github.com/fmtlib/fmt/issues/507). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2393 |
- Fixed signbit detection |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2394 |
(https://github.com/fmtlib/fmt/issues/423). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2395 |
- Fixed naming collision |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2396 |
(https://github.com/fmtlib/fmt/issues/425). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2397 |
- Fixed missing intrinsic for C++/CLI |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2398 |
(https://github.com/fmtlib/fmt/pull/457). Thanks @calumr. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2399 |
- Fixed Android detection |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2400 |
(https://github.com/fmtlib/fmt/pull/458). Thanks @Gachapen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2401 |
- Use lean `windows.h` if not in header-only mode |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2402 |
(https://github.com/fmtlib/fmt/pull/503). Thanks @Quentin01. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2403 |
- Fixed issue with CMake exporting C++11 flag |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2404 |
(https://github.com/fmtlib/fmt/pull/455). Thanks @EricWF. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2405 |
- Fixed issue with nvcc and MSVC compiler bug and MinGW |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2406 |
(https://github.com/fmtlib/fmt/issues/505). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2407 |
- Fixed DLL issues (https://github.com/fmtlib/fmt/pull/469 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2408 |
https://github.com/fmtlib/fmt/pull/502). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2409 |
Thanks @richardeakin and @AndreasSchoenle. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2410 |
- Fixed test compilation under FreeBSD |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2411 |
(https://github.com/fmtlib/fmt/issues/433). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2412 |
- Fixed various warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2413 |
(https://github.com/fmtlib/fmt/pull/403, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2414 |
https://github.com/fmtlib/fmt/pull/410 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2415 |
https://github.com/fmtlib/fmt/pull/510). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2416 |
Thanks @Lecetem, @chenhayat and @trozen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2417 |
- Worked around a broken `__builtin_clz` in clang with MS codegen |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2418 |
(https://github.com/fmtlib/fmt/issues/519). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2419 |
- Removed redundant include |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2420 |
(https://github.com/fmtlib/fmt/issues/479). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2421 |
- Fixed documentation issues. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2422 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2423 |
# 3.0.1 - 2016-11-01 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2424 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2425 |
- Fixed handling of thousands separator |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2426 |
(https://github.com/fmtlib/fmt/issues/353). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2427 |
- Fixed handling of `unsigned char` strings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2428 |
(https://github.com/fmtlib/fmt/issues/373). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2429 |
- Corrected buffer growth when formatting time |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2430 |
(https://github.com/fmtlib/fmt/issues/367). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2431 |
- Removed warnings under MSVC and clang |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2432 |
(https://github.com/fmtlib/fmt/issues/318, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2433 |
https://github.com/fmtlib/fmt/issues/250, also merged |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2434 |
https://github.com/fmtlib/fmt/pull/385 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2435 |
https://github.com/fmtlib/fmt/pull/361). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2436 |
Thanks @jcelerier and @nmoehrle. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2437 |
- Fixed compilation issues under Android |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2438 |
(https://github.com/fmtlib/fmt/pull/327, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2439 |
https://github.com/fmtlib/fmt/issues/345 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2440 |
https://github.com/fmtlib/fmt/pull/381), FreeBSD |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2441 |
(https://github.com/fmtlib/fmt/pull/358), Cygwin |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2442 |
(https://github.com/fmtlib/fmt/issues/388), MinGW |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2443 |
(https://github.com/fmtlib/fmt/issues/355) as well as other |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2444 |
issues (https://github.com/fmtlib/fmt/issues/350, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2445 |
https://github.com/fmtlib/fmt/issues/355, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2446 |
https://github.com/fmtlib/fmt/pull/348, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2447 |
https://github.com/fmtlib/fmt/pull/402, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2448 |
https://github.com/fmtlib/fmt/pull/405). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2449 |
Thanks @dpantele, @hghwng, @arvedarved, @LogicalKnight and @JanHellwig. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2450 |
- Fixed some documentation issues and extended specification |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2451 |
(https://github.com/fmtlib/fmt/issues/320, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2452 |
https://github.com/fmtlib/fmt/pull/333, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2453 |
https://github.com/fmtlib/fmt/issues/347, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2454 |
https://github.com/fmtlib/fmt/pull/362). Thanks @smellman. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2455 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2456 |
# 3.0.0 - 2016-05-07 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2457 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2458 |
- The project has been renamed from C++ Format (cppformat) to fmt for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2459 |
consistency with the used namespace and macro prefix |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2460 |
(https://github.com/fmtlib/fmt/issues/307). Library headers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2461 |
are now located in the `fmt` directory: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2462 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2463 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2464 |
#include "fmt/format.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2465 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2466 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2467 |
Including `format.h` from the `cppformat` directory is deprecated |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2468 |
but works via a proxy header which will be removed in the next major |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2469 |
version. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2470 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2471 |
The documentation is now available at <https://fmt.dev>. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2472 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2473 |
- Added support for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2474 |
[strftime](http://en.cppreference.com/w/cpp/chrono/c/strftime)-like |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2475 |
[date and time |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2476 |
formatting](https://fmt.dev/3.0.0/api.html#date-and-time-formatting) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2477 |
(https://github.com/fmtlib/fmt/issues/283): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2478 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2479 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2480 |
#include "fmt/time.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2481 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2482 |
std::time_t t = std::time(nullptr); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2483 |
// Prints "The date is 2016-04-29." (with the current date) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2484 |
fmt::print("The date is {:%Y-%m-%d}.", *std::localtime(&t)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2485 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2486 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2487 |
- `std::ostream` support including formatting of user-defined types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2488 |
that provide overloaded `operator<<` has been moved to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2489 |
`fmt/ostream.h`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2490 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2491 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2492 |
#include "fmt/ostream.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2493 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2494 |
class Date { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2495 |
int year_, month_, day_; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2496 |
public: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2497 |
Date(int year, int month, int day) : year_(year), month_(month), day_(day) {} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2498 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2499 |
friend std::ostream &operator<<(std::ostream &os, const Date &d) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2500 |
return os << d.year_ << '-' << d.month_ << '-' << d.day_; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2501 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2502 |
}; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2503 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2504 |
std::string s = fmt::format("The date is {}", Date(2012, 12, 9)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2505 |
// s == "The date is 2012-12-9" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2506 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2507 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2508 |
- Added support for [custom argument |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2509 |
formatters](https://fmt.dev/3.0.0/api.html#argument-formatters) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2510 |
(https://github.com/fmtlib/fmt/issues/235). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2511 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2512 |
- Added support for locale-specific integer formatting with the `n` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2513 |
specifier (https://github.com/fmtlib/fmt/issues/305): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2514 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2515 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2516 |
std::setlocale(LC_ALL, "en_US.utf8"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2517 |
fmt::print("cppformat: {:n}\n", 1234567); // prints 1,234,567 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2518 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2519 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2520 |
- Sign is now preserved when formatting an integer with an incorrect |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2521 |
`printf` format specifier |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2522 |
(https://github.com/fmtlib/fmt/issues/265): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2523 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2524 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2525 |
fmt::printf("%lld", -42); // prints -42 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2526 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2527 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2528 |
Note that it would be an undefined behavior in `std::printf`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2529 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2530 |
- Length modifiers such as `ll` are now optional in printf formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2531 |
functions and the correct type is determined automatically |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2532 |
(https://github.com/fmtlib/fmt/issues/255): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2533 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2534 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2535 |
fmt::printf("%d", std::numeric_limits<long long>::max()); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2536 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2537 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2538 |
Note that it would be an undefined behavior in `std::printf`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2539 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2540 |
- Added initial support for custom formatters |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2541 |
(https://github.com/fmtlib/fmt/issues/231). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2542 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2543 |
- Fixed detection of user-defined literal support on Intel C++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2544 |
compiler (https://github.com/fmtlib/fmt/issues/311, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2545 |
https://github.com/fmtlib/fmt/pull/312). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2546 |
Thanks @dean0x7d and @speth. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2547 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2548 |
- Reduced compile time |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2549 |
(https://github.com/fmtlib/fmt/pull/243, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2550 |
https://github.com/fmtlib/fmt/pull/249, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2551 |
https://github.com/fmtlib/fmt/issues/317): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2552 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2553 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2554 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2555 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2556 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2557 |
Thanks @dean0x7d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2558 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2559 |
- Compile test fixes (https://github.com/fmtlib/fmt/pull/313). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2560 |
Thanks @dean0x7d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2561 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2562 |
- Documentation fixes (https://github.com/fmtlib/fmt/pull/239, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2563 |
https://github.com/fmtlib/fmt/issues/248, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2564 |
https://github.com/fmtlib/fmt/issues/252, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2565 |
https://github.com/fmtlib/fmt/pull/258, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2566 |
https://github.com/fmtlib/fmt/issues/260, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2567 |
https://github.com/fmtlib/fmt/issues/301, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2568 |
https://github.com/fmtlib/fmt/pull/309). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2569 |
Thanks @ReadmeCritic @Gachapen and @jwilk. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2570 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2571 |
- Fixed compiler and sanitizer warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2572 |
(https://github.com/fmtlib/fmt/issues/244, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2573 |
https://github.com/fmtlib/fmt/pull/256, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2574 |
https://github.com/fmtlib/fmt/pull/259, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2575 |
https://github.com/fmtlib/fmt/issues/263, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2576 |
https://github.com/fmtlib/fmt/issues/274, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2577 |
https://github.com/fmtlib/fmt/pull/277, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2578 |
https://github.com/fmtlib/fmt/pull/286, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2579 |
https://github.com/fmtlib/fmt/issues/291, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2580 |
https://github.com/fmtlib/fmt/issues/296, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2581 |
https://github.com/fmtlib/fmt/issues/308). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2582 |
Thanks @mwinterb, @pweiskircher and @Naios. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2583 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2584 |
- Improved compatibility with Windows Store apps |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2585 |
(https://github.com/fmtlib/fmt/issues/280, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2586 |
https://github.com/fmtlib/fmt/pull/285) Thanks @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2587 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2588 |
- Added tests of compatibility with older C++ standards |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2589 |
(https://github.com/fmtlib/fmt/pull/273). Thanks @niosHD. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2590 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2591 |
- Fixed Android build |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2592 |
(https://github.com/fmtlib/fmt/pull/271). Thanks @newnon. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2593 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2594 |
- Changed `ArgMap` to be backed by a vector instead of a map. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2595 |
(https://github.com/fmtlib/fmt/issues/261, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2596 |
https://github.com/fmtlib/fmt/pull/262). Thanks @mwinterb. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2597 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2598 |
- Added `fprintf` overload that writes to a `std::ostream` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2599 |
(https://github.com/fmtlib/fmt/pull/251). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2600 |
Thanks @nickhutchinson. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2601 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2602 |
- Export symbols when building a Windows DLL |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2603 |
(https://github.com/fmtlib/fmt/pull/245). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2604 |
Thanks @macdems. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2605 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2606 |
- Fixed compilation on Cygwin |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2607 |
(https://github.com/fmtlib/fmt/issues/304). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2608 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2609 |
- Implemented a workaround for a bug in Apple LLVM version 4.2 of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2610 |
clang (https://github.com/fmtlib/fmt/issues/276). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2611 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2612 |
- Implemented a workaround for Google Test bug |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2613 |
https://github.com/google/googletest/issues/705 on gcc 6 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2614 |
(https://github.com/fmtlib/fmt/issues/268). Thanks @octoploid. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2615 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2616 |
- Removed Biicode support because the latter has been discontinued. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2617 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2618 |
# 2.1.1 - 2016-04-11 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2619 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2620 |
- The install location for generated CMake files is now configurable |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2621 |
via the `FMT_CMAKE_DIR` CMake variable |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2622 |
(https://github.com/fmtlib/fmt/pull/299). Thanks @niosHD. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2623 |
- Documentation fixes |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2624 |
(https://github.com/fmtlib/fmt/issues/252). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2625 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2626 |
# 2.1.0 - 2016-03-21 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2627 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2628 |
- Project layout and build system improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2629 |
(https://github.com/fmtlib/fmt/pull/267): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2630 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2631 |
- The code have been moved to the `cppformat` directory. Including |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2632 |
`format.h` from the top-level directory is deprecated but works |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2633 |
via a proxy header which will be removed in the next major |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2634 |
version. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2635 |
- C++ Format CMake targets now have proper interface definitions. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2636 |
- Installed version of the library now supports the header-only |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2637 |
configuration. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2638 |
- Targets `doc`, `install`, and `test` are now disabled if C++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2639 |
Format is included as a CMake subproject. They can be enabled by |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2640 |
setting `FMT_DOC`, `FMT_INSTALL`, and `FMT_TEST` in the parent |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2641 |
project. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2642 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2643 |
Thanks @niosHD. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2644 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2645 |
# 2.0.1 - 2016-03-13 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2646 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2647 |
- Improved CMake find and package support |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2648 |
(https://github.com/fmtlib/fmt/issues/264). Thanks @niosHD. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2649 |
- Fix compile error with Android NDK and mingw32 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2650 |
(https://github.com/fmtlib/fmt/issues/241). Thanks @Gachapen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2651 |
- Documentation fixes |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2652 |
(https://github.com/fmtlib/fmt/issues/248, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2653 |
https://github.com/fmtlib/fmt/issues/260). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2654 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2655 |
# 2.0.0 - 2015-12-01 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2656 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2657 |
## General |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2658 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2659 |
- \[Breaking\] Named arguments |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2660 |
(https://github.com/fmtlib/fmt/pull/169, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2661 |
https://github.com/fmtlib/fmt/pull/173, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2662 |
https://github.com/fmtlib/fmt/pull/174): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2663 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2664 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2665 |
fmt::print("The answer is {answer}.", fmt::arg("answer", 42)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2666 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2667 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2668 |
Thanks @jamboree. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2669 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2670 |
- \[Experimental\] User-defined literals for format and named |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2671 |
arguments (https://github.com/fmtlib/fmt/pull/204, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2672 |
https://github.com/fmtlib/fmt/pull/206, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2673 |
https://github.com/fmtlib/fmt/pull/207): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2674 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2675 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2676 |
using namespace fmt::literals; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2677 |
fmt::print("The answer is {answer}.", "answer"_a=42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2678 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2679 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2680 |
Thanks @dean0x7d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2681 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2682 |
- \[Breaking\] Formatting of more than 16 arguments is now supported |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2683 |
when using variadic templates |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2684 |
(https://github.com/fmtlib/fmt/issues/141). Thanks @Shauren. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2685 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2686 |
- Runtime width specification |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2687 |
(https://github.com/fmtlib/fmt/pull/168): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2688 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2689 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2690 |
fmt::format("{0:{1}}", 42, 5); // gives " 42" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2691 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2692 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2693 |
Thanks @jamboree. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2694 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2695 |
- \[Breaking\] Enums are now formatted with an overloaded |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2696 |
`std::ostream` insertion operator (`operator<<`) if available |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2697 |
(https://github.com/fmtlib/fmt/issues/232). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2698 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2699 |
- \[Breaking\] Changed default `bool` format to textual, \"true\" or |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2700 |
\"false\" (https://github.com/fmtlib/fmt/issues/170): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2701 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2702 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2703 |
fmt::print("{}", true); // prints "true" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2704 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2705 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2706 |
To print `bool` as a number use numeric format specifier such as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2707 |
`d`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2708 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2709 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2710 |
fmt::print("{:d}", true); // prints "1" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2711 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2712 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2713 |
- `fmt::printf` and `fmt::sprintf` now support formatting of `bool` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2714 |
with the `%s` specifier giving textual output, \"true\" or \"false\" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2715 |
(https://github.com/fmtlib/fmt/pull/223): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2716 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2717 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2718 |
fmt::printf("%s", true); // prints "true" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2719 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2720 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2721 |
Thanks @LarsGullik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2722 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2723 |
- \[Breaking\] `signed char` and `unsigned char` are now formatted as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2724 |
integers by default |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2725 |
(https://github.com/fmtlib/fmt/pull/217). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2726 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2727 |
- \[Breaking\] Pointers to C strings can now be formatted with the `p` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2728 |
specifier (https://github.com/fmtlib/fmt/pull/223): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2729 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2730 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2731 |
fmt::print("{:p}", "test"); // prints pointer value |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2732 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2733 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2734 |
Thanks @LarsGullik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2735 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2736 |
- \[Breaking\] `fmt::printf` and `fmt::sprintf` now print null |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2737 |
pointers as `(nil)` and null strings as `(null)` for consistency |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2738 |
with glibc (https://github.com/fmtlib/fmt/pull/226). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2739 |
Thanks @LarsGullik. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2740 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2741 |
- \[Breaking\] `fmt::(s)printf` now supports formatting of objects of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2742 |
user-defined types that provide an overloaded `std::ostream` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2743 |
insertion operator (`operator<<`) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2744 |
(https://github.com/fmtlib/fmt/issues/201): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2745 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2746 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2747 |
fmt::printf("The date is %s", Date(2012, 12, 9)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2748 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2749 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2750 |
- \[Breaking\] The `Buffer` template is now part of the public API and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2751 |
can be used to implement custom memory buffers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2752 |
(https://github.com/fmtlib/fmt/issues/140). Thanks @polyvertex. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2753 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2754 |
- \[Breaking\] Improved compatibility between `BasicStringRef` and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2755 |
[std::experimental::basic_string_view]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2756 |
http://en.cppreference.com/w/cpp/experimental/basic_string_view) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2757 |
(https://github.com/fmtlib/fmt/issues/100, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2758 |
https://github.com/fmtlib/fmt/issues/159, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2759 |
https://github.com/fmtlib/fmt/issues/183): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2760 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2761 |
- Comparison operators now compare string content, not pointers |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2762 |
- `BasicStringRef::c_str` replaced by `BasicStringRef::data` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2763 |
- `BasicStringRef` is no longer assumed to be null-terminated |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2764 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2765 |
References to null-terminated strings are now represented by a new |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2766 |
class, `BasicCStringRef`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2767 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2768 |
- Dependency on pthreads introduced by Google Test is now optional |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2769 |
(https://github.com/fmtlib/fmt/issues/185). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2770 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2771 |
- New CMake options `FMT_DOC`, `FMT_INSTALL` and `FMT_TEST` to control |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2772 |
generation of `doc`, `install` and `test` targets respectively, on |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2773 |
by default (https://github.com/fmtlib/fmt/issues/197, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2774 |
https://github.com/fmtlib/fmt/issues/198, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2775 |
https://github.com/fmtlib/fmt/issues/200). Thanks @maddinat0r. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2776 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2777 |
- `noexcept` is now used when compiling with MSVC2015 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2778 |
(https://github.com/fmtlib/fmt/pull/215). Thanks @dmkrepo. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2779 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2780 |
- Added an option to disable use of `windows.h` when |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2781 |
`FMT_USE_WINDOWS_H` is defined as 0 before including `format.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2782 |
(https://github.com/fmtlib/fmt/issues/171). Thanks @alfps. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2783 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2784 |
- \[Breaking\] `windows.h` is now included with `NOMINMAX` unless |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2785 |
`FMT_WIN_MINMAX` is defined. This is done to prevent breaking code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2786 |
using `std::min` and `std::max` and only affects the header-only |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2787 |
configuration (https://github.com/fmtlib/fmt/issues/152, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2788 |
https://github.com/fmtlib/fmt/pull/153, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2789 |
https://github.com/fmtlib/fmt/pull/154). Thanks @DevO2012. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2790 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2791 |
- Improved support for custom character types |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2792 |
(https://github.com/fmtlib/fmt/issues/171). Thanks @alfps. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2793 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2794 |
- Added an option to disable use of IOStreams when `FMT_USE_IOSTREAMS` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2795 |
is defined as 0 before including `format.h` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2796 |
(https://github.com/fmtlib/fmt/issues/205, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2797 |
https://github.com/fmtlib/fmt/pull/208). Thanks @JodiTheTigger. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2798 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2799 |
- Improved detection of `isnan`, `isinf` and `signbit`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2800 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2801 |
## Optimization |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2802 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2803 |
- Made formatting of user-defined types more efficient with a custom |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2804 |
stream buffer (https://github.com/fmtlib/fmt/issues/92, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2805 |
https://github.com/fmtlib/fmt/pull/230). Thanks @NotImplemented. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2806 |
- Further improved performance of `fmt::Writer` on integer formatting |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2807 |
and fixed a minor regression. Now it is \~7% faster than |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2808 |
`karma::generate` on Karma\'s benchmark |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2809 |
(https://github.com/fmtlib/fmt/issues/186). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2810 |
- \[Breaking\] Reduced [compiled code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2811 |
size](https://github.com/fmtlib/fmt#compile-time-and-code-bloat) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2812 |
(https://github.com/fmtlib/fmt/issues/143, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2813 |
https://github.com/fmtlib/fmt/pull/149). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2814 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2815 |
## Distribution |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2816 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2817 |
- \[Breaking\] Headers are now installed in |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2818 |
`${CMAKE_INSTALL_PREFIX}/include/cppformat` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2819 |
(https://github.com/fmtlib/fmt/issues/178). Thanks @jackyf. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2820 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2821 |
- \[Breaking\] Changed the library name from `format` to `cppformat` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2822 |
for consistency with the project name and to avoid potential |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2823 |
conflicts (https://github.com/fmtlib/fmt/issues/178). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2824 |
Thanks @jackyf. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2825 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2826 |
- C++ Format is now available in [Debian](https://www.debian.org/) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2827 |
GNU/Linux |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2828 |
([stretch](https://packages.debian.org/source/stretch/cppformat), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2829 |
[sid](https://packages.debian.org/source/sid/cppformat)) and derived |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2830 |
distributions such as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2831 |
[Ubuntu](https://launchpad.net/ubuntu/+source/cppformat) 15.10 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2832 |
later (https://github.com/fmtlib/fmt/issues/155): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2833 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2834 |
$ sudo apt-get install libcppformat1-dev |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2835 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2836 |
Thanks @jackyf. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2837 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2838 |
- [Packages for Fedora and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2839 |
RHEL](https://admin.fedoraproject.org/pkgdb/package/cppformat/) are |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2840 |
now available. Thanks Dave Johansen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2841 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2842 |
- C++ Format can now be installed via [Homebrew](http://brew.sh/) on |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2843 |
OS X (https://github.com/fmtlib/fmt/issues/157): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2844 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2845 |
$ brew install cppformat |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2846 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2847 |
Thanks @ortho and Anatoliy Bulukin. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2848 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2849 |
## Documentation |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2850 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2851 |
- Migrated from ReadTheDocs to GitHub Pages for better responsiveness |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2852 |
and reliability (https://github.com/fmtlib/fmt/issues/128). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2853 |
New documentation address is <http://cppformat.github.io/>. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2854 |
- Added [Building thedocumentation]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2855 |
https://fmt.dev/2.0.0/usage.html#building-the-documentation) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2856 |
section to the documentation. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2857 |
- Documentation build script is now compatible with Python 3 and newer |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2858 |
pip versions. (https://github.com/fmtlib/fmt/pull/189, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2859 |
https://github.com/fmtlib/fmt/issues/209). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2860 |
Thanks @JodiTheTigger and @xentec. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2861 |
- Documentation fixes and improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2862 |
(https://github.com/fmtlib/fmt/issues/36, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2863 |
https://github.com/fmtlib/fmt/issues/75, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2864 |
https://github.com/fmtlib/fmt/issues/125, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2865 |
https://github.com/fmtlib/fmt/pull/160, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2866 |
https://github.com/fmtlib/fmt/pull/161, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2867 |
https://github.com/fmtlib/fmt/issues/162, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2868 |
https://github.com/fmtlib/fmt/issues/165, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2869 |
https://github.com/fmtlib/fmt/issues/210). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2870 |
Thanks @syohex. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2871 |
- Fixed out-of-tree documentation build |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2872 |
(https://github.com/fmtlib/fmt/issues/177). Thanks @jackyf. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2873 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2874 |
## Fixes |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2875 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2876 |
- Fixed `initializer_list` detection |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2877 |
(https://github.com/fmtlib/fmt/issues/136). Thanks @Gachapen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2878 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2879 |
- \[Breaking\] Fixed formatting of enums with numeric format |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2880 |
specifiers in `fmt::(s)printf` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2881 |
(https://github.com/fmtlib/fmt/issues/131, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2882 |
https://github.com/fmtlib/fmt/issues/139): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2883 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2884 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2885 |
enum { ANSWER = 42 }; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2886 |
fmt::printf("%d", ANSWER); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2887 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2888 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2889 |
Thanks @Naios. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2890 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2891 |
- Improved compatibility with old versions of MinGW |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2892 |
(https://github.com/fmtlib/fmt/issues/129, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2893 |
https://github.com/fmtlib/fmt/pull/130, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2894 |
https://github.com/fmtlib/fmt/issues/132). Thanks @cstamford. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2895 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2896 |
- Fixed a compile error on MSVC with disabled exceptions |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2897 |
(https://github.com/fmtlib/fmt/issues/144). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2898 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2899 |
- Added a workaround for broken implementation of variadic templates |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2900 |
in MSVC2012 (https://github.com/fmtlib/fmt/issues/148). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2901 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2902 |
- Placed the anonymous namespace within `fmt` namespace for the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2903 |
header-only configuration (https://github.com/fmtlib/fmt/issues/171). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2904 |
Thanks @alfps. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2905 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2906 |
- Fixed issues reported by Coverity Scan |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2907 |
(https://github.com/fmtlib/fmt/issues/187, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2908 |
https://github.com/fmtlib/fmt/issues/192). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2909 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2910 |
- Implemented a workaround for a name lookup bug in MSVC2010 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2911 |
(https://github.com/fmtlib/fmt/issues/188). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2912 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2913 |
- Fixed compiler warnings |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2914 |
(https://github.com/fmtlib/fmt/issues/95, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2915 |
https://github.com/fmtlib/fmt/issues/96, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2916 |
https://github.com/fmtlib/fmt/pull/114, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2917 |
https://github.com/fmtlib/fmt/issues/135, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2918 |
https://github.com/fmtlib/fmt/issues/142, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2919 |
https://github.com/fmtlib/fmt/issues/145, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2920 |
https://github.com/fmtlib/fmt/issues/146, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2921 |
https://github.com/fmtlib/fmt/issues/158, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2922 |
https://github.com/fmtlib/fmt/issues/163, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2923 |
https://github.com/fmtlib/fmt/issues/175, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2924 |
https://github.com/fmtlib/fmt/issues/190, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2925 |
https://github.com/fmtlib/fmt/pull/191, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2926 |
https://github.com/fmtlib/fmt/issues/194, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2927 |
https://github.com/fmtlib/fmt/pull/196, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2928 |
https://github.com/fmtlib/fmt/issues/216, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2929 |
https://github.com/fmtlib/fmt/pull/218, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2930 |
https://github.com/fmtlib/fmt/pull/220, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2931 |
https://github.com/fmtlib/fmt/pull/229, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2932 |
https://github.com/fmtlib/fmt/issues/233, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2933 |
https://github.com/fmtlib/fmt/issues/234, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2934 |
https://github.com/fmtlib/fmt/pull/236, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2935 |
https://github.com/fmtlib/fmt/issues/281, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2936 |
https://github.com/fmtlib/fmt/issues/289). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2937 |
Thanks @seanmiddleditch, @dixlorenz, @CarterLi, @Naios, @fmatthew5876, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2938 |
@LevskiWeng, @rpopescu, @gabime, @cubicool, @jkflying, @LogicalKnight, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2939 |
@inguin and @Jopie64. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2940 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2941 |
- Fixed portability issues (mostly causing test failures) on ARM, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2942 |
ppc64, ppc64le, s390x and SunOS 5.11 i386 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2943 |
(https://github.com/fmtlib/fmt/issues/138, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2944 |
https://github.com/fmtlib/fmt/issues/179, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2945 |
https://github.com/fmtlib/fmt/issues/180, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2946 |
https://github.com/fmtlib/fmt/issues/202, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2947 |
https://github.com/fmtlib/fmt/issues/225, [Red Hat Bugzilla |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2948 |
Bug 1260297](https://bugzilla.redhat.com/show_bug.cgi?id=1260297)). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2949 |
Thanks @Naios, @jackyf and Dave Johansen. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2950 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2951 |
- Fixed a name conflict with macro `free` defined in `crtdbg.h` when |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2952 |
`_CRTDBG_MAP_ALLOC` is set (https://github.com/fmtlib/fmt/issues/211). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2953 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2954 |
- Fixed shared library build on OS X |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2955 |
(https://github.com/fmtlib/fmt/pull/212). Thanks @dean0x7d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2956 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2957 |
- Fixed an overload conflict on MSVC when `/Zc:wchar_t-` option is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2958 |
specified (https://github.com/fmtlib/fmt/pull/214). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2959 |
Thanks @slavanap. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2960 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2961 |
- Improved compatibility with MSVC 2008 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2962 |
(https://github.com/fmtlib/fmt/pull/236). Thanks @Jopie64. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2963 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2964 |
- Improved compatibility with bcc32 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2965 |
(https://github.com/fmtlib/fmt/issues/227). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2966 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2967 |
- Fixed `static_assert` detection on Clang |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2968 |
(https://github.com/fmtlib/fmt/pull/228). Thanks @dean0x7d. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2969 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2970 |
# 1.1.0 - 2015-03-06 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2971 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2972 |
- Added `BasicArrayWriter`, a class template that provides operations |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2973 |
for formatting and writing data into a fixed-size array |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2974 |
(https://github.com/fmtlib/fmt/issues/105 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2975 |
https://github.com/fmtlib/fmt/issues/122): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2976 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2977 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2978 |
char buffer[100]; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2979 |
fmt::ArrayWriter w(buffer); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2980 |
w.write("The answer is {}", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2981 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2982 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2983 |
- Added [0 A.D.](http://play0ad.com/) and [PenUltima Online |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2984 |
(POL)](http://www.polserver.com/) to the list of notable projects |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2985 |
using C++ Format. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2986 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2987 |
- C++ Format now uses MSVC intrinsics for better formatting performance |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2988 |
(https://github.com/fmtlib/fmt/pull/115, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2989 |
https://github.com/fmtlib/fmt/pull/116, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2990 |
https://github.com/fmtlib/fmt/pull/118 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2991 |
https://github.com/fmtlib/fmt/pull/121). Previously these |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2992 |
optimizations where only used on GCC and Clang. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2993 |
Thanks @CarterLi and @objectx. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2994 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2995 |
- CMake install target |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2996 |
(https://github.com/fmtlib/fmt/pull/119). Thanks @TrentHouliston. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2997 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2998 |
You can now install C++ Format with `make install` command. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
2999 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3000 |
- Improved [Biicode](http://www.biicode.com/) support |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3001 |
(https://github.com/fmtlib/fmt/pull/98 and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3002 |
https://github.com/fmtlib/fmt/pull/104). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3003 |
Thanks @MariadeAnton and @franramirez688. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3004 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3005 |
- Improved support for building with [Android NDK]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3006 |
https://developer.android.com/tools/sdk/ndk/index.html) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3007 |
(https://github.com/fmtlib/fmt/pull/107). Thanks @newnon. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3008 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3009 |
The [android-ndk-example](https://github.com/fmtlib/android-ndk-example) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3010 |
repository provides and example of using C++ Format with Android NDK: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3011 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3012 |
 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3013 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3014 |
- Improved documentation of `SystemError` and `WindowsError` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3015 |
(https://github.com/fmtlib/fmt/issues/54). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3016 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3017 |
- Various code improvements |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3018 |
(https://github.com/fmtlib/fmt/pull/110, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3019 |
https://github.com/fmtlib/fmt/pull/111 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3020 |
https://github.com/fmtlib/fmt/pull/112). Thanks @CarterLi. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3021 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3022 |
- Improved compile-time errors when formatting wide into narrow |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3023 |
strings (https://github.com/fmtlib/fmt/issues/117). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3024 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3025 |
- Fixed `BasicWriter::write` without formatting arguments when C++11 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3026 |
support is disabled |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3027 |
(https://github.com/fmtlib/fmt/issues/109). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3028 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3029 |
- Fixed header-only build on OS X with GCC 4.9 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3030 |
(https://github.com/fmtlib/fmt/issues/124). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3031 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3032 |
- Fixed packaging issues (https://github.com/fmtlib/fmt/issues/94). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3033 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3034 |
- Added [changelog](https://github.com/fmtlib/fmt/blob/master/ChangeLog.md) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3035 |
(https://github.com/fmtlib/fmt/issues/103). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3036 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3037 |
# 1.0.0 - 2015-02-05 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3038 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3039 |
- Add support for a header-only configuration when `FMT_HEADER_ONLY` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3040 |
is defined before including `format.h`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3041 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3042 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3043 |
#define FMT_HEADER_ONLY |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3044 |
#include "format.h" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3045 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3046 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3047 |
- Compute string length in the constructor of `BasicStringRef` instead |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3048 |
of the `size` method |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3049 |
(https://github.com/fmtlib/fmt/issues/79). This eliminates |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3050 |
size computation for string literals on reasonable optimizing |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3051 |
compilers. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3052 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3053 |
- Fix formatting of types with overloaded `operator <<` for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3054 |
`std::wostream` (https://github.com/fmtlib/fmt/issues/86): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3055 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3056 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3057 |
fmt::format(L"The date is {0}", Date(2012, 12, 9)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3058 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3059 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3060 |
- Fix linkage of tests on Arch Linux |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3061 |
(https://github.com/fmtlib/fmt/issues/89). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3062 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3063 |
- Allow precision specifier for non-float arguments |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3064 |
(https://github.com/fmtlib/fmt/issues/90): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3065 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3066 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3067 |
fmt::print("{:.3}\n", "Carpet"); // prints "Car" |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3068 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3069 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3070 |
- Fix build on Android NDK (https://github.com/fmtlib/fmt/issues/93). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3071 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3072 |
- Improvements to documentation build procedure. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3073 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3074 |
- Remove `FMT_SHARED` CMake variable in favor of standard [BUILD_SHARED_LIBS]( |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3075 |
http://www.cmake.org/cmake/help/v3.0/variable/BUILD_SHARED_LIBS.html). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3076 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3077 |
- Fix error handling in `fmt::fprintf`. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3078 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3079 |
- Fix a number of warnings. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3080 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3081 |
# 0.12.0 - 2014-10-25 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3082 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3083 |
- \[Breaking\] Improved separation between formatting and buffer |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3084 |
management. `Writer` is now a base class that cannot be instantiated |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3085 |
directly. The new `MemoryWriter` class implements the default buffer |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3086 |
management with small allocations done on stack. So `fmt::Writer` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3087 |
should be replaced with `fmt::MemoryWriter` in variable |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3088 |
declarations. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3089 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3090 |
Old code: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3091 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3092 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3093 |
fmt::Writer w; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3094 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3095 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3096 |
New code: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3097 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3098 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3099 |
fmt::MemoryWriter w; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3100 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3101 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3102 |
If you pass `fmt::Writer` by reference, you can continue to do so: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3103 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3104 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3105 |
void f(fmt::Writer &w); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3106 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3107 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3108 |
This doesn\'t affect the formatting API. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3109 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3110 |
- Support for custom memory allocators |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3111 |
(https://github.com/fmtlib/fmt/issues/69) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3112 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3113 |
- Formatting functions now accept [signed char]{.title-ref} and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3114 |
[unsigned char]{.title-ref} strings as arguments |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3115 |
(https://github.com/fmtlib/fmt/issues/73): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3116 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3117 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3118 |
auto s = format("GLSL version: {}", glGetString(GL_VERSION)); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3119 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3120 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3121 |
- Reduced code bloat. According to the new [benchmark |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3122 |
results](https://github.com/fmtlib/fmt#compile-time-and-code-bloat), |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3123 |
cppformat is close to `printf` and by the order of magnitude better |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3124 |
than Boost Format in terms of compiled code size. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3125 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3126 |
- Improved appearance of the documentation on mobile by using the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3127 |
[Sphinx Bootstrap |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3128 |
theme](http://ryan-roemer.github.io/sphinx-bootstrap-theme/): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3129 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3130 |
| Old | New | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3131 |
| --- | --- | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3132 |
|  |  | |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3133 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3134 |
# 0.11.0 - 2014-08-21 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3135 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3136 |
- Safe printf implementation with a POSIX extension for positional |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3137 |
arguments: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3138 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3139 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3140 |
fmt::printf("Elapsed time: %.2f seconds", 1.23); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3141 |
fmt::printf("%1$s, %3$d %2$s", weekday, month, day); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3142 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3143 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3144 |
- Arguments of `char` type can now be formatted as integers (Issue |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3145 |
https://github.com/fmtlib/fmt/issues/55): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3146 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3147 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3148 |
fmt::format("0x{0:02X}", 'a'); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3149 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3150 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3151 |
- Deprecated parts of the API removed. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3152 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3153 |
- The library is now built and tested on MinGW with Appveyor in |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3154 |
addition to existing test platforms Linux/GCC, OS X/Clang, |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3155 |
Windows/MSVC. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3156 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3157 |
# 0.10.0 - 2014-07-01 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3158 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3159 |
**Improved API** |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3160 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3161 |
- All formatting methods are now implemented as variadic functions |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3162 |
instead of using `operator<<` for feeding arbitrary arguments into a |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3163 |
temporary formatter object. This works both with C++11 where |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3164 |
variadic templates are used and with older standards where variadic |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3165 |
functions are emulated by providing lightweight wrapper functions |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3166 |
defined with the `FMT_VARIADIC` macro. You can use this macro for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3167 |
defining your own portable variadic functions: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3168 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3169 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3170 |
void report_error(const char *format, const fmt::ArgList &args) { |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3171 |
fmt::print("Error: {}"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3172 |
fmt::print(format, args); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3173 |
} |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3174 |
FMT_VARIADIC(void, report_error, const char *) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3175 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3176 |
report_error("file not found: {}", path); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3177 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3178 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3179 |
Apart from a more natural syntax, this also improves performance as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3180 |
there is no need to construct temporary formatter objects and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3181 |
control arguments\' lifetimes. Because the wrapper functions are |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3182 |
very lightweight, this doesn\'t cause code bloat even in pre-C++11 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3183 |
mode. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3184 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3185 |
- Simplified common case of formatting an `std::string`. Now it |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3186 |
requires a single function call: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3187 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3188 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3189 |
std::string s = format("The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3190 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3191 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3192 |
Previously it required 2 function calls: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3193 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3194 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3195 |
std::string s = str(Format("The answer is {}.") << 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3196 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3197 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3198 |
Instead of unsafe `c_str` function, `fmt::Writer` should be used |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3199 |
directly to bypass creation of `std::string`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3200 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3201 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3202 |
fmt::Writer w; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3203 |
w.write("The answer is {}.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3204 |
w.c_str(); // returns a C string |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3205 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3206 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3207 |
This doesn\'t do dynamic memory allocation for small strings and is |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3208 |
less error prone as the lifetime of the string is the same as for |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3209 |
`std::string::c_str` which is well understood (hopefully). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3210 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3211 |
- Improved consistency in naming functions that are a part of the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3212 |
public API. Now all public functions are lowercase following the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3213 |
standard library conventions. Previously it was a combination of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3214 |
lowercase and CapitalizedWords. Issue |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3215 |
https://github.com/fmtlib/fmt/issues/50. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3216 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3217 |
- Old functions are marked as deprecated and will be removed in the |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3218 |
next release. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3219 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3220 |
**Other Changes** |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3221 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3222 |
- Experimental support for printf format specifications (work in |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3223 |
progress): |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3224 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3225 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3226 |
fmt::printf("The answer is %d.", 42); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3227 |
std::string s = fmt::sprintf("Look, a %s!", "string"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3228 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3229 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3230 |
- Support for hexadecimal floating point format specifiers `a` and |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3231 |
`A`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3232 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3233 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3234 |
print("{:a}", -42.0); // Prints -0x1.5p+5 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3235 |
print("{:A}", -42.0); // Prints -0X1.5P+5 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3236 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3237 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3238 |
- CMake option `FMT_SHARED` that specifies whether to build format as |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3239 |
a shared library (off by default). |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3240 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3241 |
# 0.9.0 - 2014-05-13 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3242 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3243 |
- More efficient implementation of variadic formatting functions. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3244 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3245 |
- `Writer::Format` now has a variadic overload: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3246 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3247 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3248 |
Writer out; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3249 |
out.Format("Look, I'm {}!", "variadic"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3250 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3251 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3252 |
- For efficiency and consistency with other overloads, variadic |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3253 |
overload of the `Format` function now returns `Writer` instead of |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3254 |
`std::string`. Use the `str` function to convert it to |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3255 |
`std::string`: |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3256 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3257 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3258 |
std::string s = str(Format("Look, I'm {}!", "variadic")); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3259 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3260 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3261 |
- Replaced formatter actions with output sinks: `NoAction` -\> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3262 |
`NullSink`, `Write` -\> `FileSink`, `ColorWriter` -\> |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3263 |
`ANSITerminalSink`. This improves naming consistency and shouldn\'t |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3264 |
affect client code unless these classes are used directly which |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3265 |
should be rarely needed. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3266 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3267 |
- Added `ThrowSystemError` function that formats a message and throws |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3268 |
`SystemError` containing the formatted message and system-specific |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3269 |
error description. For example, the following code |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3270 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3271 |
```c++ |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3272 |
FILE *f = fopen(filename, "r"); |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3273 |
if (!f) |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3274 |
ThrowSystemError(errno, "Failed to open file '{}'") << filename; |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3275 |
``` |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3276 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3277 |
will throw `SystemError` exception with description \"Failed to open |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3278 |
file \'\<filename\>\': No such file or directory\" if file doesn\'t |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3279 |
exist. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3280 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3281 |
- Support for AppVeyor continuous integration platform. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3282 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3283 |
- `Format` now throws `SystemError` in case of I/O errors. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3284 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3285 |
- Improve test infrastructure. Print functions are now tested by |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3286 |
redirecting the output to a pipe. |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3287 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3288 |
# 0.8.0 - 2014-04-14 |
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3289 |
|
| 47fd5c32 |
Poul Sander |
2024-10-05 08:44 |
3290 |
- Initial release |
|
|
1970-01-01 00:00 |
3291 |
|