Update changelog
This commit is contained in:
parent
13d6b2d38c
commit
722c8e4ae6
446
ChangeLog.rst
446
ChangeLog.rst
@ -1,11 +1,239 @@
|
|||||||
2.0.0 - TBD
|
2.0.0 - TBD
|
||||||
-----------
|
-----------
|
||||||
|
|
||||||
|
General
|
||||||
|
~~~~~~~
|
||||||
|
|
||||||
|
* [Breaking] Named arguments
|
||||||
|
(`#169 <https://github.com/cppformat/cppformat/pull/169>`_,
|
||||||
|
`#173 <https://github.com/cppformat/cppformat/pull/173>`_,
|
||||||
|
`#174 <https://github.com/cppformat/cppformat/pull/174>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::print("The answer is {answer}.", fmt::arg("answer", 42));
|
||||||
|
|
||||||
|
Thanks to `@jamboree <https://github.com/jamboree>`_.
|
||||||
|
|
||||||
|
* [Experimental] User-defined literals for format and named arguments
|
||||||
|
(`#204 <https://github.com/cppformat/cppformat/pull/204>`_,
|
||||||
|
`#206 <https://github.com/cppformat/cppformat/pull/206>`_,
|
||||||
|
`#207 <https://github.com/cppformat/cppformat/pull/207>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
using namespace fmt::literals;
|
||||||
|
fmt::print("The answer is {answer}.", "answer"_a=42);
|
||||||
|
|
||||||
|
Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
|
||||||
|
|
||||||
|
* [Breaking] Formatting of more than 16 arguments is now supported when using
|
||||||
|
variadic templates
|
||||||
|
(`#141 <https://github.com/cppformat/cppformat/issues/141>`_).
|
||||||
|
Thanks to `@Shauren <https://github.com/Shauren>`_.
|
||||||
|
|
||||||
|
* Runtime width specification
|
||||||
|
(`#168 <https://github.com/cppformat/cppformat/pull/168>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::format("{0:{1}}", 42, 5); // gives " 42"
|
||||||
|
|
||||||
|
Thanks to `@jamboree <https://github.com/jamboree>`_.
|
||||||
|
|
||||||
|
* [Breaking] Enums are now formatted with an overloaded ``std::ostream`` insertion
|
||||||
|
operator (``operator<<``) if available
|
||||||
|
(`#232 <https://github.com/cppformat/cppformat/issues/232>`_).
|
||||||
|
|
||||||
|
* [Breaking] Changed default ``bool`` format to textual, "true" or "false"
|
||||||
|
(`#170 <https://github.com/cppformat/cppformat/issues/170>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::print("{}", true); // prints "true"
|
||||||
|
|
||||||
|
To print ``bool`` as a number use numeric format specifier such as ``d``:
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::print("{:d}", true); // prints "1"
|
||||||
|
|
||||||
|
* ``fmt::printf`` and ``fmt::sprintf`` now support formatting of ``bool`` with the
|
||||||
|
``%s`` specifier giving textual output, "true" or "false"
|
||||||
|
(`#223 <https://github.com/cppformat/cppformat/pull/223>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::printf("%s", true); // prints "true"
|
||||||
|
|
||||||
|
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
||||||
|
|
||||||
|
* [Breaking] ``signed`` and ``unsigned char`` are now formatted as integers by default
|
||||||
|
(`#217 <https://github.com/cppformat/cppformat/pull/217>`_).
|
||||||
|
|
||||||
|
* [Breaking] Pointers to C strings can now be formatted with the ``p`` specifier
|
||||||
|
(`#223 <https://github.com/cppformat/cppformat/pull/223>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::print("{:p}", "test"); // prints pointer value
|
||||||
|
|
||||||
|
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
||||||
|
|
||||||
|
* [Breaking] ``fmt::printf`` and ``fmt::sprintf`` now print null pointers as ``(nil)``
|
||||||
|
and null strings as ``(null)`` for consistency with glibc
|
||||||
|
(`#226 <https://github.com/cppformat/cppformat/pull/226>`_).
|
||||||
|
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
||||||
|
|
||||||
|
* [Breaking] ``fmt::(s)printf`` now supports formatting of objects of user-defined types
|
||||||
|
that provide an overloaded ``std::ostream`` insertion operator (``operator<<``)
|
||||||
|
(`#201 <https://github.com/cppformat/cppformat/issues/201>`_):
|
||||||
|
|
||||||
|
.. code:: c++
|
||||||
|
|
||||||
|
fmt::printf("The date is %s", Date(2012, 12, 9));
|
||||||
|
|
||||||
|
* [Breaking] The ``Buffer`` template is now part of the public API and can be used
|
||||||
|
to implement custom memory buffers
|
||||||
|
(`#140 <https://github.com/cppformat/cppformat/issues/140>`_).
|
||||||
|
Thanks to `@polyvertex (Jean-Charles Lefebvre) <https://github.com/polyvertex>`_.
|
||||||
|
|
||||||
|
* [Breaking] Improved compatibility between ``BasicStringRef`` and
|
||||||
|
`std::experimental::basic_string_view
|
||||||
|
<http://en.cppreference.com/w/cpp/experimental/basic_string_view>`_
|
||||||
|
(`#100 <https://github.com/cppformat/cppformat/issues/100>`_,
|
||||||
|
`#159 <https://github.com/cppformat/cppformat/issues/159>`_,
|
||||||
|
`#183 <https://github.com/cppformat/cppformat/issues/183>`_):
|
||||||
|
|
||||||
|
- Comparison operators now compare string content, not pointers
|
||||||
|
- ``BasicStringRef::c_str`` replaced by ``BasicStringRef::data``
|
||||||
|
- ``BasicStringRef`` is no longer assumed to be null-terminated
|
||||||
|
|
||||||
|
* Dependency on pthreads introduced by Google Test is now optional
|
||||||
|
(`#185 <https://github.com/cppformat/cppformat/issues/185>`_).
|
||||||
|
|
||||||
|
* New CMake options ``FMT_DOC``, ``FMT_INSTALL`` and ``FMT_TEST`` to control
|
||||||
|
generation of ``doc``, ``install`` and ``test`` targets respectively, on by default
|
||||||
|
(`#197 <https://github.com/cppformat/cppformat/issues/197>`_,
|
||||||
|
`#198 <https://github.com/cppformat/cppformat/issues/198>`_,
|
||||||
|
`#200 <https://github.com/cppformat/cppformat/issues/200>`_).
|
||||||
|
Thanks to `@maddinat0r (Alex Martin) <https://github.com/maddinat0r>`_.
|
||||||
|
|
||||||
|
* ``noexcept`` is now used when compiling with MSVC2015
|
||||||
|
(`#215 <https://github.com/cppformat/cppformat/pull/215>`_).
|
||||||
|
Thanks to `@dmkrepo (Dmitriy) <https://github.com/dmkrepo>`_.
|
||||||
|
|
||||||
|
* Added an option to disable use of ``windows.h`` when ``FMT_USE_WINDOWS_H``
|
||||||
|
is defined as 0 before including ``format.h``
|
||||||
|
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
||||||
|
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
||||||
|
|
||||||
|
* [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless
|
||||||
|
``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using
|
||||||
|
``std::min`` and ``std::max`` and only affects the header-only configuration
|
||||||
|
(`#152 <https://github.com/cppformat/cppformat/issues/152>`_,
|
||||||
|
`#153 <https://github.com/cppformat/cppformat/pull/153>`_,
|
||||||
|
`#154 <https://github.com/cppformat/cppformat/pull/154>`_).
|
||||||
|
Thanks to `@DevO2012 <https://github.com/DevO2012>`_.
|
||||||
|
|
||||||
|
* Improved support for custom character types
|
||||||
|
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
||||||
|
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
||||||
|
|
||||||
|
* Added an option to disable use of IOStreams when ``FMT_USE_IOSTREAMS``
|
||||||
|
is defined as 0 before including ``format.h``
|
||||||
|
(`#205 <https://github.com/cppformat/cppformat/issues/205>`_,
|
||||||
|
`#208 <https://github.com/cppformat/cppformat/pull/208>`_).
|
||||||
|
Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_.
|
||||||
|
|
||||||
|
* Improved detection of ``isnan``, ``isinf`` and ``signbit``.
|
||||||
|
|
||||||
|
Optimization
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* Made formatting of user-defined types more efficient with a custom stream buffer
|
||||||
|
(`#92 <https://github.com/cppformat/cppformat/issues/92>`_,
|
||||||
|
`#230 <https://github.com/cppformat/cppformat/pull/230>`_).
|
||||||
|
Thanks to `@NotImplemented <https://github.com/NotImplemented>`_.
|
||||||
|
|
||||||
|
* Further improved performance of ``fmt::Writer`` on integer formatting
|
||||||
|
and fixed a minor regression. Now it is ~7% faster than ``karma::generate``
|
||||||
|
on Karma's benchmark
|
||||||
|
(`#186 <https://github.com/cppformat/cppformat/issues/186>`_).
|
||||||
|
|
||||||
|
* [Breaking] Reduced `compiled code size
|
||||||
|
<https://github.com/cppformat/cppformat#compile-time-and-code-bloat>`_
|
||||||
|
(`#143 <https://github.com/cppformat/cppformat/issues/143>`_,
|
||||||
|
`#149 <https://github.com/cppformat/cppformat/pull/149>`_).
|
||||||
|
|
||||||
|
Distribution
|
||||||
|
~~~~~~~~~~~~
|
||||||
|
|
||||||
|
* [Breaking] Headers are now installed in
|
||||||
|
``${CMAKE_INSTALL_PREFIX}/include/cppformat``
|
||||||
|
(`#178 <https://github.com/cppformat/cppformat/issues/178>`_).
|
||||||
|
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
||||||
|
|
||||||
|
* [Breaking] Changed the library name from ``format`` to ``cppformat``
|
||||||
|
for consistency with the project name and to avoid potential conflicts
|
||||||
|
(`#178 <https://github.com/cppformat/cppformat/issues/178>`_).
|
||||||
|
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
||||||
|
|
||||||
|
* C++ Format is now available in `Debian <https://www.debian.org/>`_ GNU/Linux
|
||||||
|
(`stretch <https://packages.debian.org/source/stretch/cppformat>`_,
|
||||||
|
`sid <https://packages.debian.org/source/sid/cppformat>`_) and
|
||||||
|
derived distributions such as
|
||||||
|
`Ubuntu <https://launchpad.net/ubuntu/+source/cppformat>`_ 15.10 and later
|
||||||
|
(`#155 <https://github.com/cppformat/cppformat/issues/155>`_)::
|
||||||
|
|
||||||
|
$ sudo apt-get install libcppformat1-dev
|
||||||
|
|
||||||
|
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
||||||
|
|
||||||
|
* C++ Format can now be installed via `Homebrew <http://brew.sh/>`_ on OS X
|
||||||
|
(`#157 <https://github.com/cppformat/cppformat/issues/157>`_)::
|
||||||
|
|
||||||
|
$ brew install cppformat
|
||||||
|
|
||||||
|
Thanks to `@ortho <https://github.com/ortho>`_, Anatoliy Bulukin.
|
||||||
|
|
||||||
|
Documentation
|
||||||
|
~~~~~~~~~~~~~
|
||||||
|
|
||||||
* Migrated from ReadTheDocs to GitHub Pages for better responsiveness
|
* Migrated from ReadTheDocs to GitHub Pages for better responsiveness
|
||||||
and reliability
|
and reliability
|
||||||
(`#128 <https://github.com/cppformat/cppformat/issues/128>`_).
|
(`#128 <https://github.com/cppformat/cppformat/issues/128>`_).
|
||||||
New documentation address is http://cppformat.github.io/.
|
New documentation address is http://cppformat.github.io/.
|
||||||
|
|
||||||
|
* Added `Building the documentation
|
||||||
|
<http://cppformat.github.io/dev/usage.html#building-the-documentation>`_
|
||||||
|
section to the documentation.
|
||||||
|
|
||||||
|
* Documentation build script is now compatible with Python 3 and newer pip versions.
|
||||||
|
(`#189 <https://github.com/cppformat/cppformat/pull/189>`_,
|
||||||
|
`#209 <https://github.com/cppformat/cppformat/issues/209>`_).
|
||||||
|
Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_ and
|
||||||
|
`@xentec <https://github.com/xentec>`_.
|
||||||
|
|
||||||
|
* Documentation fixes and improvements
|
||||||
|
(`#36 <https://github.com/cppformat/cppformat/issues/36>`_,
|
||||||
|
`#75 <https://github.com/cppformat/cppformat/issues/75>`_,
|
||||||
|
`#125 <https://github.com/cppformat/cppformat/issues/125>`_,
|
||||||
|
`#160 <https://github.com/cppformat/cppformat/pull/160>`_,
|
||||||
|
`#161 <https://github.com/cppformat/cppformat/pull/161>`_,
|
||||||
|
`#162 <https://github.com/cppformat/cppformat/issues/162>`_,
|
||||||
|
`#165 <https://github.com/cppformat/cppformat/issues/165>`_,
|
||||||
|
`#210 <https://github.com/cppformat/cppformat/issues/210>`_).
|
||||||
|
Thanks to `@syohex (Syohei YOSHIDA) <https://github.com/syohex>`_ and
|
||||||
|
bug reporters.
|
||||||
|
|
||||||
|
* Fixed out-of-tree documentation build
|
||||||
|
(`#177 <https://github.com/cppformat/cppformat/issues/177>`_).
|
||||||
|
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
||||||
|
|
||||||
|
Fixes
|
||||||
|
~~~~~
|
||||||
|
|
||||||
* Fixed ``initializer_list`` detection
|
* Fixed ``initializer_list`` detection
|
||||||
(`#136 <https://github.com/cppformat/cppformat/issues/136>`_).
|
(`#136 <https://github.com/cppformat/cppformat/issues/136>`_).
|
||||||
Thanks to `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_.
|
Thanks to `@Gachapen (Magnus Bjerke Vik) <https://github.com/Gachapen>`_.
|
||||||
@ -28,146 +256,18 @@
|
|||||||
`#132 <https://github.com/cppformat/cppformat/issues/132>`_).
|
`#132 <https://github.com/cppformat/cppformat/issues/132>`_).
|
||||||
Thanks to `@cstamford (Christopher Stamford) <https://github.com/cstamford>`_.
|
Thanks to `@cstamford (Christopher Stamford) <https://github.com/cstamford>`_.
|
||||||
|
|
||||||
* [Breaking] The ``Buffer`` template is now part of the public API and can be used
|
|
||||||
to implement custom memory buffers
|
|
||||||
(`#140 <https://github.com/cppformat/cppformat/issues/140>`_).
|
|
||||||
Thanks to `@polyvertex (Jean-Charles Lefebvre) <https://github.com/polyvertex>`_.
|
|
||||||
|
|
||||||
* [Breaking] Formatting of more than 16 arguments is now supported when using
|
|
||||||
variadic templates
|
|
||||||
(`#141 <https://github.com/cppformat/cppformat/issues/141>`_).
|
|
||||||
Thanks to `@Shauren <https://github.com/Shauren>`_.
|
|
||||||
|
|
||||||
* [Breaking] Reduced `compiled code size
|
|
||||||
<https://github.com/cppformat/cppformat#compile-time-and-code-bloat>`_
|
|
||||||
(`#143 <https://github.com/cppformat/cppformat/issues/143>`_,
|
|
||||||
`#149 <https://github.com/cppformat/cppformat/pull/149>`_).
|
|
||||||
|
|
||||||
* Fixed a compile error on MSVC with disabled exceptions
|
* Fixed a compile error on MSVC with disabled exceptions
|
||||||
(`#144 <https://github.com/cppformat/cppformat/issues/144>`_).
|
(`#144 <https://github.com/cppformat/cppformat/issues/144>`_).
|
||||||
|
|
||||||
* Added a workaround for broken implementation of variadic templates in MSVC2012
|
* Added a workaround for broken implementation of variadic templates in MSVC2012
|
||||||
(`#148 <https://github.com/cppformat/cppformat/issues/148>`_).
|
(`#148 <https://github.com/cppformat/cppformat/issues/148>`_).
|
||||||
|
|
||||||
* [Breaking] ``windows.h`` is now included with ``NOMINMAX`` unless
|
|
||||||
``FMT_WIN_MINMAX`` is defined. This is done to prevent breaking code using
|
|
||||||
``std::min`` and ``std::max`` and only affects the header-only configuration
|
|
||||||
(`#152 <https://github.com/cppformat/cppformat/issues/152>`_,
|
|
||||||
`#153 <https://github.com/cppformat/cppformat/pull/153>`_,
|
|
||||||
`#154 <https://github.com/cppformat/cppformat/pull/154>`_).
|
|
||||||
Thanks to `@DevO2012 <https://github.com/DevO2012>`_.
|
|
||||||
|
|
||||||
* C++ Format is now available in `Debian <https://www.debian.org/>`_ GNU/Linux
|
|
||||||
(`stretch <https://packages.debian.org/source/stretch/cppformat>`_,
|
|
||||||
`sid <https://packages.debian.org/source/sid/cppformat>`_) and
|
|
||||||
derived distributions such as
|
|
||||||
`Ubuntu <https://launchpad.net/ubuntu/+source/cppformat>`_ 15.10 and later
|
|
||||||
(`#155 <https://github.com/cppformat/cppformat/issues/155>`_)::
|
|
||||||
|
|
||||||
$ sudo apt-get install libcppformat1-dev
|
|
||||||
|
|
||||||
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
|
||||||
|
|
||||||
* C++ Format can now be installed via `Homebrew <http://brew.sh/>`_ on OS X
|
|
||||||
(`#157 <https://github.com/cppformat/cppformat/issues/157>`_)::
|
|
||||||
|
|
||||||
$ brew install cppformat
|
|
||||||
|
|
||||||
Thanks to `@ortho <https://github.com/ortho>`_, Anatoliy Bulukin.
|
|
||||||
|
|
||||||
* [Breaking] Changed default ``bool`` format to textual, "true" or "false"
|
|
||||||
(`#170 <https://github.com/cppformat/cppformat/issues/170>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::print("{}", true); // prints "true"
|
|
||||||
|
|
||||||
To print ``bool`` as a number use numeric format specifier such as ``d``:
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::print("{:d}", true); // prints "1"
|
|
||||||
|
|
||||||
* Documentation fixes and improvements
|
|
||||||
(`#36 <https://github.com/cppformat/cppformat/issues/36>`_,
|
|
||||||
`#75 <https://github.com/cppformat/cppformat/issues/75>`_,
|
|
||||||
`#125 <https://github.com/cppformat/cppformat/issues/125>`_,
|
|
||||||
`#160 <https://github.com/cppformat/cppformat/pull/160>`_,
|
|
||||||
`#161 <https://github.com/cppformat/cppformat/pull/161>`_,
|
|
||||||
`#162 <https://github.com/cppformat/cppformat/issues/162>`_,
|
|
||||||
`#165 <https://github.com/cppformat/cppformat/issues/165>`_,
|
|
||||||
`#210 <https://github.com/cppformat/cppformat/issues/210>`_).
|
|
||||||
Thanks to `@syohex (Syohei YOSHIDA) <https://github.com/syohex>`_ and
|
|
||||||
bug reporters.
|
|
||||||
|
|
||||||
* Improved support for custom character types
|
|
||||||
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
|
||||||
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
|
||||||
|
|
||||||
* Placed the anonymous namespace within ``fmt`` namespace for the header-only
|
* Placed the anonymous namespace within ``fmt`` namespace for the header-only
|
||||||
configuration
|
configuration
|
||||||
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
||||||
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
||||||
|
|
||||||
* Added an option to disable use of ``windows.h`` when ``FMT_USE_WINDOWS_H``
|
* Fixed issues reported by Coverity Scan
|
||||||
is defined as 0 before including ``format.h``
|
|
||||||
(`#171 <https://github.com/cppformat/cppformat/issues/171>`_).
|
|
||||||
Thanks to `@alfps (Alf P. Steinbach) <https://github.com/alfps>`_.
|
|
||||||
|
|
||||||
* Runtime width specification
|
|
||||||
(`#168 <https://github.com/cppformat/cppformat/pull/168>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::format("{0:{1}}", 42, 5); // gives " 42"
|
|
||||||
|
|
||||||
Thanks to `@jamboree <https://github.com/jamboree>`_.
|
|
||||||
|
|
||||||
* [Breaking] Named arguments
|
|
||||||
(`#169 <https://github.com/cppformat/cppformat/pull/169>`_,
|
|
||||||
`#173 <https://github.com/cppformat/cppformat/pull/173>`_,
|
|
||||||
`#174 <https://github.com/cppformat/cppformat/pull/174>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::print("The answer is {answer}.", fmt::arg("answer", 42));
|
|
||||||
|
|
||||||
Thanks to `@jamboree <https://github.com/jamboree>`_.
|
|
||||||
|
|
||||||
* Fixed out-of-tree documentation build
|
|
||||||
(`#177 <https://github.com/cppformat/cppformat/issues/177>`_).
|
|
||||||
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
|
||||||
|
|
||||||
* [Breaking] Changed the library name from ``format`` to ``cppformat``
|
|
||||||
for consistency with the project name and to avoid potential conflicts
|
|
||||||
(`#178 <https://github.com/cppformat/cppformat/issues/178>`_).
|
|
||||||
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
|
||||||
|
|
||||||
* [Breaking] Headers are now installed in
|
|
||||||
``${CMAKE_INSTALL_PREFIX}/include/cppformat``
|
|
||||||
(`#178 <https://github.com/cppformat/cppformat/issues/178>`_).
|
|
||||||
Thanks to `@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_.
|
|
||||||
|
|
||||||
* [Breaking] Improved compatibility between ``BasicStringRef`` and
|
|
||||||
`std::experimental::basic_string_view
|
|
||||||
<http://en.cppreference.com/w/cpp/experimental/basic_string_view>`_
|
|
||||||
(`#100 <https://github.com/cppformat/cppformat/issues/100>`_,
|
|
||||||
`#159 <https://github.com/cppformat/cppformat/issues/159>`_,
|
|
||||||
`#183 <https://github.com/cppformat/cppformat/issues/183>`_):
|
|
||||||
|
|
||||||
- Comparison operators now compare string content, not pointers
|
|
||||||
- ``BasicStringRef::c_str`` replaced by ``BasicStringRef::data``
|
|
||||||
- ``BasicStringRef`` is no longer assumed to be null-terminated
|
|
||||||
|
|
||||||
* Dependency on pthreads introduced by Google Test is now optional
|
|
||||||
(`#185 <https://github.com/cppformat/cppformat/issues/185>`_).
|
|
||||||
|
|
||||||
* Further improved performance of ``fmt::Writer`` on integer formatting
|
|
||||||
and fixed a minor regression. Now it is ~7% faster than ``karma::generate``
|
|
||||||
on Karma's benchmark
|
|
||||||
(`#186 <https://github.com/cppformat/cppformat/issues/186>`_).
|
|
||||||
|
|
||||||
* Fixed warnings reported by Coverity Scan
|
|
||||||
(`#187 <https://github.com/cppformat/cppformat/issues/187>`_,
|
(`#187 <https://github.com/cppformat/cppformat/issues/187>`_,
|
||||||
`#192 <https://github.com/cppformat/cppformat/issues/192>`_).
|
`#192 <https://github.com/cppformat/cppformat/issues/192>`_).
|
||||||
|
|
||||||
@ -190,6 +290,9 @@
|
|||||||
`#194 <https://github.com/cppformat/cppformat/issues/194>`_,
|
`#194 <https://github.com/cppformat/cppformat/issues/194>`_,
|
||||||
`#196 <https://github.com/cppformat/cppformat/pull/196>`_,
|
`#196 <https://github.com/cppformat/cppformat/pull/196>`_,
|
||||||
`#216 <https://github.com/cppformat/cppformat/issues/216>`_,
|
`#216 <https://github.com/cppformat/cppformat/issues/216>`_,
|
||||||
|
`#218 <https://github.com/cppformat/cppformat/pull/218>`_,
|
||||||
|
`#220 <https://github.com/cppformat/cppformat/pull/220>`_,
|
||||||
|
`#229 <https://github.com/cppformat/cppformat/pull/229>`_,
|
||||||
`#233 <https://github.com/cppformat/cppformat/issues/233>`_,
|
`#233 <https://github.com/cppformat/cppformat/issues/233>`_,
|
||||||
`#234 <https://github.com/cppformat/cppformat/issues/234>`_).
|
`#234 <https://github.com/cppformat/cppformat/issues/234>`_).
|
||||||
Thanks to `@seanmiddleditch (Sean Middleditch) <https://github.com/seanmiddleditch>`_,
|
Thanks to `@seanmiddleditch (Sean Middleditch) <https://github.com/seanmiddleditch>`_,
|
||||||
@ -200,23 +303,10 @@
|
|||||||
`@LevskiWeng (Levski Weng) <https://github.com/LevskiWeng>`_,
|
`@LevskiWeng (Levski Weng) <https://github.com/LevskiWeng>`_,
|
||||||
`@rpopescu <https://github.com/rpopescu>`_,
|
`@rpopescu <https://github.com/rpopescu>`_,
|
||||||
`@gabime (Gabi Melman) <https://github.com/gabime>`_,
|
`@gabime (Gabi Melman) <https://github.com/gabime>`_,
|
||||||
`@cubicool (Jeremy Moles) <https://github.com/cubicool>`_ and
|
`@cubicool (Jeremy Moles) <https://github.com/cubicool>`_,
|
||||||
`@jkflying (Julian Kent) <https://github.com/jkflying>`_.
|
`@jkflying (Julian Kent) <https://github.com/jkflying>`_,
|
||||||
|
`@LogicalKnight (Sean L) <https://github.com/LogicalKnight>`_ and
|
||||||
* New CMake options ``FMT_DOC``, ``FMT_INSTALL`` and ``FMT_TEST`` to control
|
`@inguin (Ingo van Lil) <https://github.com/inguin>`_
|
||||||
generation of ``doc``, ``install`` and ``test`` targets respectively, on by default
|
|
||||||
(`#197 <https://github.com/cppformat/cppformat/issues/197>`_,
|
|
||||||
`#198 <https://github.com/cppformat/cppformat/issues/198>`_,
|
|
||||||
`#200 <https://github.com/cppformat/cppformat/issues/200>`_).
|
|
||||||
Thanks to `@maddinat0r (Alex Martin) <https://github.com/maddinat0r>`_.
|
|
||||||
|
|
||||||
* [Breaking] ``fmt::(s)printf`` now supports formatting of objects of user-defined types
|
|
||||||
that provide an overloaded ``std::ostream`` insertion operator (``operator<<``)
|
|
||||||
(`#201 <https://github.com/cppformat/cppformat/issues/201>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::printf("The date is %s", Date(2012, 12, 9));
|
|
||||||
|
|
||||||
* Fixed portability issues (mostly causing test failures) on ARM, ppc64, ppc64le,
|
* Fixed portability issues (mostly causing test failures) on ARM, ppc64, ppc64le,
|
||||||
s390x and SunOS 5.11 i386 (
|
s390x and SunOS 5.11 i386 (
|
||||||
@ -229,34 +319,6 @@
|
|||||||
Thanks to `@Naios <https://github.com/Naios>`_,
|
Thanks to `@Naios <https://github.com/Naios>`_,
|
||||||
`@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_ and Dave Johansen.
|
`@jackyf (Eugene V. Lyubimkin) <https://github.com/jackyf>`_ and Dave Johansen.
|
||||||
|
|
||||||
* [Experimental] User-defined literals for format and named arguments
|
|
||||||
(`#204 <https://github.com/cppformat/cppformat/pull/204>`_,
|
|
||||||
`#206 <https://github.com/cppformat/cppformat/pull/206>`_,
|
|
||||||
`#207 <https://github.com/cppformat/cppformat/pull/207>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
using namespace fmt::literals;
|
|
||||||
fmt::print("The answer is {answer}.", "answer"_a=42);
|
|
||||||
|
|
||||||
Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
|
|
||||||
|
|
||||||
* Added an option to disable use of IOStreams when ``FMT_USE_IOSTREAMS``
|
|
||||||
is defined as 0 before including ``format.h``
|
|
||||||
(`#205 <https://github.com/cppformat/cppformat/issues/205>`_,
|
|
||||||
`#208 <https://github.com/cppformat/cppformat/pull/208>`_).
|
|
||||||
Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_.
|
|
||||||
|
|
||||||
* Added `Building the documentation
|
|
||||||
<http://cppformat.github.io/dev/usage.html#building-the-documentation>`_
|
|
||||||
section to the documentation.
|
|
||||||
|
|
||||||
* Documentation build script is now compatible with Python 3 and newer pip versions.
|
|
||||||
(`#189 <https://github.com/cppformat/cppformat/pull/189>`_,
|
|
||||||
`#209 <https://github.com/cppformat/cppformat/issues/209>`_).
|
|
||||||
Thanks to `@JodiTheTigger <https://github.com/JodiTheTigger>`_ and
|
|
||||||
`@xentec <https://github.com/xentec>`_.
|
|
||||||
|
|
||||||
* Fixed a name conflict with macro ``free`` defined in
|
* Fixed a name conflict with macro ``free`` defined in
|
||||||
``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set
|
``crtdbg.h`` when ``_CRTDBG_MAP_ALLOC`` is set
|
||||||
(`#211 <https://github.com/cppformat/cppformat/issues/211>`_).
|
(`#211 <https://github.com/cppformat/cppformat/issues/211>`_).
|
||||||
@ -269,42 +331,12 @@
|
|||||||
(`#214 <https://github.com/cppformat/cppformat/pull/214>`_).
|
(`#214 <https://github.com/cppformat/cppformat/pull/214>`_).
|
||||||
Thanks to `@slavanap (Vyacheslav Napadovsky) <https://github.com/slavanap>`_.
|
Thanks to `@slavanap (Vyacheslav Napadovsky) <https://github.com/slavanap>`_.
|
||||||
|
|
||||||
* ``noexcept`` is now used when compiling with MSVC2015
|
|
||||||
(`#215 <https://github.com/cppformat/cppformat/pull/215>`_).
|
|
||||||
Thanks to `@dmkrepo (Dmitriy) <https://github.com/dmkrepo>`_.
|
|
||||||
|
|
||||||
* [Breaking] ``signed`` and ``unsigned char`` are now formatted as integers by default
|
|
||||||
(`#217 <https://github.com/cppformat/cppformat/pull/217>`_).
|
|
||||||
|
|
||||||
* Pointers to C strings can now be formatted with the ``p`` specifier
|
|
||||||
(`#223 <https://github.com/cppformat/cppformat/pull/223>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::print("{:p}", "test"); // prints pointer value
|
|
||||||
|
|
||||||
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
|
||||||
|
|
||||||
* ``fmt::printf`` and ``fmt::sprintf`` now support formatting of ``bool`` with the
|
|
||||||
``%s`` specifier giving textual output, ``true`` or ``false``
|
|
||||||
(`#223 <https://github.com/cppformat/cppformat/pull/223>`_):
|
|
||||||
|
|
||||||
.. code:: c++
|
|
||||||
|
|
||||||
fmt::printf("%s", true); // prints "true"
|
|
||||||
|
|
||||||
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
|
||||||
|
|
||||||
* [Breaking] ``fmt::printf`` and ``fmt::sprintf`` now print null pointers as ``(nil)``
|
|
||||||
and null strings as ``(null)`` for consistency with glibc
|
|
||||||
(`#226 <https://github.com/cppformat/cppformat/pull/226>`_).
|
|
||||||
Thanks to `@LarsGullik <https://github.com/LarsGullik>`_.
|
|
||||||
|
|
||||||
* Improved compatibility with bcc32
|
* Improved compatibility with bcc32
|
||||||
(`#227 <https://github.com/cppformat/cppformat/pull/227>`_).
|
(`#227 <https://github.com/cppformat/cppformat/pull/227>`_).
|
||||||
|
|
||||||
* Enums are now formatted with an overloaded ``std::ostream`` insertion operator
|
* Fixed ``static_assert`` detection on Clang
|
||||||
(``operator<<``) if available.
|
(`#228 <https://github.com/cppformat/cppformat/pull/228>`_).
|
||||||
|
Thanks to `@dean0x7d (Dean Moldovan) <https://github.com/dean0x7d>`_.
|
||||||
|
|
||||||
1.1.0 - 2015-03-06
|
1.1.0 - 2015-03-06
|
||||||
------------------
|
------------------
|
||||||
|
Loading…
Reference in New Issue
Block a user