Commit 3e3a2774 authored by Victor Zverovich's avatar Victor Zverovich

Update changelog

parent b76bb796
...@@ -22,8 +22,8 @@ ...@@ -22,8 +22,8 @@
#include <fmt/format.h> #include <fmt/format.h>
std::string s = format(fmt("{:d}"), "foo"); std::string s = format(fmt("{:d}"), "foo");
gives a compile-time error because ``d`` is an invalid specifier for strings gives a compile-time error because ``d`` is an invalid specifier for strings
(`godbolt <https://godbolt.org/g/rnCy9Q>`_):: (`godbolt <https://godbolt.org/g/rnCy9Q>`_)::
... ...
<source>:4:19: note: in instantiation of function template specialization 'fmt::v5::format<S, char [4]>' requested here <source>:4:19: note: in instantiation of function template specialization 'fmt::v5::format<S, char [4]>' requested here
...@@ -32,6 +32,9 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -32,6 +32,9 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
format.h:1337:13: note: non-constexpr function 'on_error' cannot be used in a constant expression format.h:1337:13: note: non-constexpr function 'on_error' cannot be used in a constant expression
handler.on_error("invalid type specifier"); handler.on_error("invalid type specifier");
Compile-time checks require relaxed ``constexpr`` (C++14 feature) support. If
the latter is not available, checks will be performed at runtime.
* Separated format string parsing and formatting in the extension API to enable * Separated format string parsing and formatting in the extension API to enable
compile-time format string processing. For example compile-time format string processing. For example
...@@ -70,9 +73,6 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -70,9 +73,6 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
<source>:12:45: error: expression '<throw-expression>' is not a constant expression <source>:12:45: error: expression '<throw-expression>' is not a constant expression
throw format_error("invalid specifier"); throw format_error("invalid specifier");
Compile-time checks require relaxed ``constexpr`` (C++14 feature) support. If
the latter is not available, checks will be performed at runtime.
* Added `iterator support * Added `iterator support
<http://fmtlib.net/dev/api.html#output-iterator-support>`_: <http://fmtlib.net/dev/api.html#output-iterator-support>`_:
...@@ -84,6 +84,17 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -84,6 +84,17 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
std::vector<char> out; std::vector<char> out;
fmt::format_to(std::back_inserter(out), "{}", 42); fmt::format_to(std::back_inserter(out), "{}", 42);
* Added the `format_to_n
<http://fmtlib.net/dev/api.html#_CPPv2N3fmt11format_to_nE8OutputItNSt6size_tE11string_viewDpRK4Args>`_
function that restricts the output to the specified number of characters
(`#298 <https://github.com/fmtlib/fmt/issues/298>`_):
.. code:: c++
char out[4];
fmt::format_to_n(out, sizeof(out), "{}", 12345);
// out == "1234" (without terminating '\0')
* Added the `formatted_size * Added the `formatted_size
<http://fmtlib.net/dev/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args>`_ <http://fmtlib.net/dev/api.html#_CPPv2N3fmt14formatted_sizeE11string_viewDpRK4Args>`_
function for computing the output size: function for computing the output size:
...@@ -122,6 +133,9 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -122,6 +133,9 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
vreport_error(format, fmt::make_format_args(args...)); vreport_error(format, fmt::make_format_args(args...));
} }
* Added the ``make_printf_args`` function for capturing ``printf`` arguments.
Thanks `@Kronuz (Germán Méndez Bravo) <https://github.com/Kronuz>`_.
* Added prefix ``v`` to non-variadic functions taking ``format_args`` to * Added prefix ``v`` to non-variadic functions taking ``format_args`` to
distinguish them from variadic ones: distinguish them from variadic ones:
...@@ -162,16 +176,15 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -162,16 +176,15 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
* Disallowed formatting of multibyte strings into a wide character target * Disallowed formatting of multibyte strings into a wide character target
(`#606 <https://github.com/fmtlib/fmt/pull/606>`_). (`#606 <https://github.com/fmtlib/fmt/pull/606>`_).
* Added a section describing `the use of header-only target with CMake * Improved documentation (
<http://fmtlib.net/dev/usage.html#header-only-usage-with-cmake>`_ to the docs `#515 <https://github.com/fmtlib/fmt/pull/515>`_,
(`#515 <https://github.com/fmtlib/fmt/pull/515>`_).
Thanks `@ibell (Ian Bell) <https://github.com/ibell>`_.
* Added a `note about errno <http://fmtlib.net/latest/index.html#safety>`_ to the
documentation (
`#614 <https://github.com/fmtlib/fmt/issues/614>`_, `#614 <https://github.com/fmtlib/fmt/issues/614>`_,
`#617 <https://github.com/fmtlib/fmt/pull/617>`_). `#617 <https://github.com/fmtlib/fmt/pull/617>`_,
Thanks `@mihaitodor (Mihai Todor) <https://github.com/mihaitodor>`_. `#661 <https://github.com/fmtlib/fmt/pull/661>`_,
`#680 <https://github.com/fmtlib/fmt/pull/680>`_).
Thanks `@ibell (Ian Bell) <https://github.com/ibell>`_,
`@mihaitodor (Mihai Todor) <https://github.com/mihaitodor>`_, and
`@johnthagen <https://github.com/johnthagen>`_.
* Implemented more efficient handling of large number of format arguments. * Implemented more efficient handling of large number of format arguments.
...@@ -182,6 +195,10 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -182,6 +195,10 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
(`#397 <https://github.com/fmtlib/fmt/pull/397>`_). (`#397 <https://github.com/fmtlib/fmt/pull/397>`_).
Thanks `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_. Thanks `@chronoxor (Ivan Shynkarenka) <https://github.com/chronoxor>`_.
* Moved ``fmt/*.h`` to ``include/fmt/*.h`` to prevent irrelevant files and
directories appearing on the include search paths when fmt is used as a
subproject and moved source files to the ``src`` directory.
* Added qmake project file ``support/fmt.pro`` * Added qmake project file ``support/fmt.pro``
(`#641 <https://github.com/fmtlib/fmt/pull/641>`_). (`#641 <https://github.com/fmtlib/fmt/pull/641>`_).
Thanks `@cowo78 (Giuseppe Corbelli) <https://github.com/cowo78>`_. Thanks `@cowo78 (Giuseppe Corbelli) <https://github.com/cowo78>`_.
...@@ -209,14 +226,23 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -209,14 +226,23 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
* Fixed various compiler warnings ( * Fixed various compiler warnings (
`#640 <https://github.com/fmtlib/fmt/pull/640>`_, `#640 <https://github.com/fmtlib/fmt/pull/640>`_,
`#656 <https://github.com/fmtlib/fmt/pull/656>`_). `#656 <https://github.com/fmtlib/fmt/pull/656>`_,
Thanks `@peterbell10 <https://github.com/peterbell10>`_ and `#679 <https://github.com/fmtlib/fmt/pull/679>`_,
`@LarsGullik <https://github.com/LarsGullik>`_. `#681 <https://github.com/fmtlib/fmt/pull/681>`_,
`#705 <https://github.com/fmtlib/fmt/pull/705>`_).
Thanks `@peterbell10 <https://github.com/peterbell10>`_,
`@LarsGullik <https://github.com/LarsGullik>`_,
`@foonathan (Jonathan Müller) <https://github.com/foonathan>`_,
`@eliaskosunen (Elias Kosunen) <https://github.com/eliaskosunen>`_, and
`@christianparpart (Christian Parpart) <https://github.com/christianparpart>`_.
* Worked around an MSVC bug and fixed several warnings * Worked around an MSVC bug and fixed several warnings
(`#653 <https://github.com/fmtlib/fmt/pull/653>`_). (`#653 <https://github.com/fmtlib/fmt/pull/653>`_).
Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_. Thanks `@alabuzhev (Alex Alabuzhev) <https://github.com/alabuzhev>`_.
* Worked around GCC bug 67371
(`#682 <https://github.com/fmtlib/fmt/issues/682>`_).
* Fixed compilation with ``-fno-exceptions`` * Fixed compilation with ``-fno-exceptions``
(`#655 <https://github.com/fmtlib/fmt/pull/655>`_). (`#655 <https://github.com/fmtlib/fmt/pull/655>`_).
Thanks `@chenxiaolong (Andrew Gunnerson) <https://github.com/chenxiaolong>`_. Thanks `@chenxiaolong (Andrew Gunnerson) <https://github.com/chenxiaolong>`_.
...@@ -234,10 +260,6 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -234,10 +260,6 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
(`#660 <https://github.com/fmtlib/fmt/pull/660>`_). (`#660 <https://github.com/fmtlib/fmt/pull/660>`_).
Thanks `@hubslave <https://github.com/hubslave>`_. Thanks `@hubslave <https://github.com/hubslave>`_.
* Improved documentation
(`#661 <https://github.com/fmtlib/fmt/pull/661>`_).
Thanks `@johnthagen <https://github.com/johnthagen>`_.
* Fixed compilation when there is a mismatch between ``-std`` options between * Fixed compilation when there is a mismatch between ``-std`` options between
the library and user code the library and user code
(`#664 <https://github.com/fmtlib/fmt/issues/664>`_). (`#664 <https://github.com/fmtlib/fmt/issues/664>`_).
...@@ -248,6 +270,22 @@ gives a compile-time error because ``d`` is an invalid specifier for strings ...@@ -248,6 +270,22 @@ gives a compile-time error because ``d`` is an invalid specifier for strings
* Fixed handling of numeric alignment with no width * Fixed handling of numeric alignment with no width
(`#675 <https://github.com/fmtlib/fmt/issues/675>`_). (`#675 <https://github.com/fmtlib/fmt/issues/675>`_).
* Fixed handling of empty strings in UTF8/16 converters
(`#676 <https://github.com/fmtlib/fmt/pull/676>`_).
Thanks `@vgalka-sl (Vasili Galka) <https://github.com/vgalka-sl>`_.
* Fixed formatting of an empty ``string_view``
(`#689 <https://github.com/fmtlib/fmt/issues/689>`_).
* Fixed detection of ``string_view`` on libc++
(`#686 <https://github.com/fmtlib/fmt/issues/686>`_).
* Fixed DLL issues (`#696 <https://github.com/fmtlib/fmt/pull/696>`_).
Thanks `@sebkoenig <https://github.com/sebkoenig>`_.
* Fixed compile checks for mixing narrow and wide strings
(`#690 <https://github.com/fmtlib/fmt/issues/690>`_).
4.1.0 - 2017-12-20 4.1.0 - 2017-12-20
------------------ ------------------
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment