Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
F
fmt
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Libraries
fmt
Commits
cd465111
Commit
cd465111
authored
Oct 24, 2020
by
Victor Zverovich
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update changelog
parent
46291be3
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
130 additions
and
17 deletions
+130
-17
ChangeLog.rst
ChangeLog.rst
+130
-17
No files found.
ChangeLog.rst
View file @
cd465111
7.1.0 - TBD
7.1.0 - TBD
-----------
-----------
* Added a formatter for ``std::chrono::time_point<system_clock>``:
.. code:: c++
#include <fmt/chrono.h>
int main() {
auto now = std::chrono::system_clock::now();
fmt::print("The time is {:%H:%M:%S}.\n", now);
}
Thanks `@adamburgess (Adam Burgess) <https://github.com/adamburgess>`_.
* Added an experimental unsynchronized file output API which, together with
* Added an experimental unsynchronized file output API which, together with
format string compilation, can give `5-9 times speed up compared to fprintf
the format string compilation, can give `5-9 times speed up compared to
<https://www.zverovich.net/2020/08/04/optimal-file-buffer-size.html>`__ on
fprintf <https://www.zverovich.net/2020/08/04/optimal-file-buffer-size.html>`_
common platforms:
on
common platforms:
.. code:: c++
.. code:: c++
...
@@ -15,6 +28,33 @@
...
@@ -15,6 +28,33 @@
f.print("The answer is {}.", 42);
f.print("The answer is {}.", 42);
}
}
* Added support for ranges with non-const ``begin``/``end`` to ``fmt::join``
(`#1784 <https://github.com/fmtlib/fmt/issues/1784)>`_,
`#1786 <https://github.com/fmtlib/fmt/pull/1786)>`_) For example
(`godbolt <https://godbolt.org/z/jTzrPT>`__):
.. code:: c++
#include <fmt/ranges.h>
#include <range/v3/view/filter.hpp>
int main() {
using std::literals::string_literals::operator""s;
auto strs = std::array{"a"s, "bb"s, "ccc"s};
auto range = strs | ranges::views::filter(
[] (const std::string &x) { return x.size() != 2; }
);
fmt::print("{}\n", fmt::join(range, ""));
}
prints "accc".
Thanks `@tonyelewis (Tony E Lewis) <https://github.com/tonyelewis>`_.
* Added a ``memory_buffer::append`` overload that takes a range
(`#1806 <https://github.com/fmtlib/fmt/pull/1806)>`_).
Thanks `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_.
* Improved handling of single code units in ``FMT_COMPILE``. For example:
* Improved handling of single code units in ``FMT_COMPILE``. For example:
.. code:: c++
.. code:: c++
...
@@ -45,6 +85,9 @@
...
@@ -45,6 +85,9 @@
Here a single ``mov`` instruction writes ``'x'`` (``$120``) to the output
Here a single ``mov`` instruction writes ``'x'`` (``$120``) to the output
buffer.
buffer.
* Added dynamic width support to format string compilation
(`#1809 <https://github.com/fmtlib/fmt/issues/1809)>`_).
* Improved error reporting for unformattable types: now you'll get the type name
* Improved error reporting for unformattable types: now you'll get the type name
directly in the error message instead of the note:
directly in the error message instead of the note:
...
@@ -66,9 +109,10 @@
...
@@ -66,9 +109,10 @@
https://fmt.dev/dev/api.html#udt"
https://fmt.dev/dev/api.html#udt"
...
...
* Added the [``make_args_checked``](https://fmt.dev/
dev
/api.html#argument-lists)
* Added the [``make_args_checked``](https://fmt.dev/
7.1.0
/api.html#argument-lists)
function template that allows you to write formatting functions with
function template that allows you to write formatting functions with
compile-time format string checks:
compile-time format string checks
(`godbolt <https://godbolt.org/z/PEf9qr>`__):
.. code:: c++
.. code:: c++
...
@@ -89,14 +133,58 @@
...
@@ -89,14 +133,58 @@
MY_LOG("invalid squishiness: {}", 42);
MY_LOG("invalid squishiness: {}", 42);
* Made ``format_to_n`` and ``formatted_size`` part of the `core API
<https://fmt.dev/latest/api.html#core-api>`__
(`godbolt <https://godbolt.org/z/33Pzo3>`__):
.. code:: c++
#include <fmt/core.h>
int main() {
char buf[10];
auto end = fmt::format_to_n(buf, sizeof(buf), "{}", 42);
}
* Made `#` emit trailing zeros. For example
(`godbolt <https://godbolt.org/z/bhdcW9>`__):
.. code:: c++
#include <fmt/core.h>
int main() {
fmt::print("{:#.2g}", 0.5);
}
prints "0.50".
* Made ``fmt::to_string`` fallback on ``ostream`` insertion operator if
the ``formatter`` specialization is not provided
(`#1815 <https://github.com/fmtlib/fmt/issues/1815>`_,
`#1829 <https://github.com/fmtlib/fmt/pull/1829>`_).
Thanks `@alexezeder (Alexey Ochapov) <https://github.com/alexezeder>`_.
* Added support for the append mode to the experimental file API
(`#1847 <https://github.com/fmtlib/fmt/pull/1847>`_).
Thanks `@t-wiser <https://github.com/t-wiser>`_.
* Fixed handling of types that have both an implicit conversion operator and
* Fixed handling of types that have both an implicit conversion operator and
an overloaded `ostream` insertion operator
an overloaded `ostream` insertion operator
(`#1766 <https://github.com/fmtlib/fmt/issues/1766>`_).
(`#1766 <https://github.com/fmtlib/fmt/issues/1766>`_).
* Fixed a slicing issue in an internal iterator type
(`#1822 <https://github.com/fmtlib/fmt/pull/1822>`_).
Thanks `@BRevzin (Barry Revzin) <https://github.com/BRevzin>`_.
* Improved documentation
* Improved documentation
(`#1772 <https://github.com/fmtlib/fmt/issues/1772)>`_,
(`#1772 <https://github.com/fmtlib/fmt/issues/1772)>`_,
`#1775 <https://github.com/fmtlib/fmt/pull/1775)>`_).
`#1775 <https://github.com/fmtlib/fmt/pull/1775)>`_,
Thanks `@leolchat (Léonard Gérard) <https://github.com/leolchat>`_.
`#1792 <https://github.com/fmtlib/fmt/pull/1792)>`_,
`#1838 <https://github.com/fmtlib/fmt/pull/1838)>`_).
Thanks `@leolchat (Léonard Gérard) <https://github.com/leolchat>`_,
`@pepsiman (Malcolm Parsons) <https://github.com/pepsiman>`_,
`@Klaim (Joël Lamotte) <https://github.com/Klaim>`_.
* Added the ``FMT_REDUCE_INT_INSTANTIATIONS`` CMake option that reduces the
* Added the ``FMT_REDUCE_INT_INSTANTIATIONS`` CMake option that reduces the
binary code size at the cost of some integer formatting performance. This can
binary code size at the cost of some integer formatting performance. This can
...
@@ -108,10 +196,35 @@
...
@@ -108,10 +196,35 @@
* Build configuration improvements
* Build configuration improvements
(`#1760 <https://github.com/fmtlib/fmt/pull/1760>`_,
(`#1760 <https://github.com/fmtlib/fmt/pull/1760>`_,
`#1770 <https://github.com/fmtlib/fmt/pull/1770>`_,
`#1770 <https://github.com/fmtlib/fmt/pull/1770>`_,
`#1783 <https://github.com/fmtlib/fmt/pull/1783>`_).
`#1779 <https://github.com/fmtlib/fmt/issues/1779>`_,
`#1783 <https://github.com/fmtlib/fmt/pull/1783>`_,
`#1823 <https://github.com/fmtlib/fmt/pull/1823>`_).
Thanks `@dvetutnev (Dmitriy Vetutnev) <https://github.com/dvetutnev>`_,
Thanks `@dvetutnev (Dmitriy Vetutnev) <https://github.com/dvetutnev>`_,
`@xvitaly (Vitaly Zaitsev) <https://github.com/xvitaly>`_,
`@xvitaly (Vitaly Zaitsev) <https://github.com/xvitaly>`_,
`@tambry (Raul Tambre) <https://github.com/tambry>`_.
`@tambry (Raul Tambre) <https://github.com/tambry>`_,
`@medithe <https://github.com/medithe>`_,
`@martinwuehrer (Martin Wührer) <https://github.com/martinwuehrer>`_.
* Fixed various warnings and compilation issues
(`#1790 <https://github.com/fmtlib/fmt/pull/1790>`_,
`#1802 <https://github.com/fmtlib/fmt/pull/1802>`_,
`#1808 <https://github.com/fmtlib/fmt/pull/1808>`_,
`#1810 <https://github.com/fmtlib/fmt/issues/1810>`_,
`#1811 <https://github.com/fmtlib/fmt/issues/1811>`_,
`#1812 <https://github.com/fmtlib/fmt/pull/1812>`_,
`#1814 <https://github.com/fmtlib/fmt/pull/1814>`_,
`#1816 <https://github.com/fmtlib/fmt/pull/1816>`_,
`#1817 <https://github.com/fmtlib/fmt/pull/1817>`_,
`#1818 <https://github.com/fmtlib/fmt/pull/1818>`_,
`#1825 <https://github.com/fmtlib/fmt/issues/1825>`_,
`#1836 <https://github.com/fmtlib/fmt/pull/1836>`_).
Thanks `@TheQwertiest <https://github.com/TheQwertiest>`_,
`@medithe <https://github.com/medithe>`_,
`@martinwuehrer (Martin Wührer) <https://github.com/martinwuehrer>`_,
`@n16h7hunt3r <https://github.com/n16h7hunt3r>`_,
`@Othereum (Seokjin Lee) <https://github.com/Othereum>`_,
`@gsjaardema (Greg Sjaardema) <https://github.com/gsjaardema>`_,
`@AlexanderLanin (Alexander Lanin) <https://github.com/AlexanderLanin>`_.
7.0.3 - 2020-08-06
7.0.3 - 2020-08-06
------------------
------------------
...
@@ -164,7 +277,7 @@
...
@@ -164,7 +277,7 @@
<http://www.zverovich.net/2020/05/21/reducing-library-size.html>`_.
<http://www.zverovich.net/2020/05/21/reducing-library-size.html>`_.
* Added a simpler and more efficient `format string compilation API
* Added a simpler and more efficient `format string compilation API
<https://fmt.dev/
dev
/api.html#compile-api>`_:
<https://fmt.dev/
7.0.0
/api.html#compile-api>`_:
.. code:: c++
.. code:: c++
...
@@ -1820,7 +1933,7 @@
...
@@ -1820,7 +1933,7 @@
* Implemented ``constexpr`` parsing of format strings and `compile-time format
* Implemented ``constexpr`` parsing of format strings and `compile-time format
string checks
string checks
<https://fmt.dev/
dev
/api.html#compile-time-format-string-checks>`_. For
<https://fmt.dev/
latest
/api.html#compile-time-format-string-checks>`_. For
example
example
.. code:: c++
.. code:: c++
...
@@ -1881,7 +1994,7 @@
...
@@ -1881,7 +1994,7 @@
throw format_error("invalid specifier");
throw format_error("invalid specifier");
* Added `iterator support
* Added `iterator support
<https://fmt.dev/
dev
/api.html#output-iterator-support>`_:
<https://fmt.dev/
latest
/api.html#output-iterator-support>`_:
.. code:: c++
.. code:: c++
...
@@ -1892,7 +2005,7 @@
...
@@ -1892,7 +2005,7 @@
fmt::format_to(std::back_inserter(out), "{}", 42);
fmt::format_to(std::back_inserter(out), "{}", 42);
* Added the `format_to_n
* Added the `format_to_n
<https://fmt.dev/
dev
/api.html#_CPPv2N3fmt11format_to_nE8OutputItNSt6size_tE11string_viewDpRK4Args>`_
<https://fmt.dev/
latest
/api.html#_CPPv2N3fmt11format_to_nE8OutputItNSt6size_tE11string_viewDpRK4Args>`_
function that restricts the output to the specified number of characters
function that restricts the output to the specified number of characters
(`#298 <https://github.com/fmtlib/fmt/issues/298>`_):
(`#298 <https://github.com/fmtlib/fmt/issues/298>`_):
...
@@ -1903,7 +2016,7 @@
...
@@ -1903,7 +2016,7 @@
// out == "1234" (without terminating '\0')
// out == "1234" (without terminating '\0')
* Added the `formatted_size
* Added the `formatted_size
<https://fmt.dev/
dev
/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args>`_
<https://fmt.dev/
latest
/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args>`_
function for computing the output size:
function for computing the output size:
.. code:: c++
.. code:: c++
...
@@ -1913,7 +2026,7 @@
...
@@ -1913,7 +2026,7 @@
auto size = fmt::formatted_size("{}", 12345); // size == 5
auto size = fmt::formatted_size("{}", 12345); // size == 5
* Improved compile times by reducing dependencies on standard headers and
* Improved compile times by reducing dependencies on standard headers and
providing a lightweight `core API <https://fmt.dev/
dev
/api.html#core-api>`_:
providing a lightweight `core API <https://fmt.dev/
latest
/api.html#core-api>`_:
.. code:: c++
.. code:: c++
...
@@ -1925,7 +2038,7 @@
...
@@ -1925,7 +2038,7 @@
<https://github.com/fmtlib/fmt#compile-time-and-code-bloat>`_.
<https://github.com/fmtlib/fmt#compile-time-and-code-bloat>`_.
* Added the `make_format_args
* Added the `make_format_args
<https://fmt.dev/
dev
/api.html#_CPPv2N3fmt16make_format_argsEDpRK4Args>`_
<https://fmt.dev/
latest
/api.html#_CPPv2N3fmt16make_format_argsEDpRK4Args>`_
function for capturing formatting arguments:
function for capturing formatting arguments:
.. code:: c++
.. code:: c++
...
@@ -2007,7 +2120,7 @@
...
@@ -2007,7 +2120,7 @@
fmt::format("{} {two}", 1, fmt::arg("two", 2));
fmt::format("{} {two}", 1, fmt::arg("two", 2));
* Removed the write API in favor of the `format API
* Removed the write API in favor of the `format API
<https://fmt.dev/
dev
/api.html#format-api>`_ with compile-time handling of
<https://fmt.dev/
latest
/api.html#format-api>`_ with compile-time handling of
format strings.
format strings.
* Disallowed formatting of multibyte strings into a wide character target
* Disallowed formatting of multibyte strings into a wide character target
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment