2
0
mirror of https://github.com/boostorg/website.git synced 2026-02-15 01:32:08 +00:00
Files
website/generated/downloads.rss
2020-03-11 21:09:38 -04:00

4783 lines
243 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:boostbook="urn:boost-org:boostbook" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<generator>Boost Website Site Tools</generator>
<title>Boost Downloads</title>
<link>https://www.boost.org/users/download/</link>
<atom:link href="https://www.boost.org/generated/downloads.rss" rel="self" type="application/rss+xml" />
<description></description>
<language>en-us</language>
<copyright>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)</copyright>
<item><title>Version 1.72.0</title><link>https://www.boost.org/users/history/version_1_72_0.html</link><guid>https://www.boost.org/users/history/version_1_72_0.html</guid><pubDate>Wed, 11 Dec 2019 18:06:09 +0000</pubDate><description>
&lt;div id="version_1_72_0.known_issues"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Known Issues&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
These are patches from library authors which were found too late to be fixed
in the release. Be careful as they have not been through the normal testing
process.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Revert cease dependence on range
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/patches/1_72_0/0001-revert-cease-dependence-on-range.patch"&gt;Coroutine
patch&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_72_0.updated_libraries"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated Libraries&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/asio/"&gt;Asio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;
helper function to automatically deduce its return type, for C++11
or later.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed all asynchronous operations to use automatically deduced
return types, for C++14 or later.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Introduced concepts to support &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the nested template type &lt;code&gt;&lt;span class="identifier"&gt;rebind_executor&lt;/span&gt;&lt;/code&gt;
to all I/O object types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the initiation function objects to report their associated
I/O executor via the nested type &lt;code&gt;&lt;span class="identifier"&gt;executor_type&lt;/span&gt;&lt;/code&gt;
and member function &lt;code&gt;&lt;span class="identifier"&gt;get_executor&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="identifier"&gt;default_completion_token&lt;/span&gt;&lt;/code&gt;
trait, giving I/O executor types an associated default completion
token type for use with asynchronous operations. This trait is specialised
for the &lt;code&gt;&lt;span class="identifier"&gt;use_awaitable&lt;/span&gt;&lt;/code&gt;
completion token, for example, to allow asynchronous operations to
be used as follows: &lt;code&gt;&lt;span class="identifier"&gt;co_await&lt;/span&gt;
&lt;span class="identifier"&gt;socket&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;async_connect&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;my_endpoint&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added missing &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;
to the Windows-specific I/O objects' asynchronous operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensured that the executor type is propagated to newly accepted sockets.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed to require that &lt;code&gt;&lt;span class="identifier"&gt;Protocol&lt;/span&gt;&lt;/code&gt;
copy and move operations never throw.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed to require that &lt;code&gt;&lt;span class="identifier"&gt;Endpoint&lt;/span&gt;&lt;/code&gt;
default constructor and move operations never throw.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; qualifier
to protocol accessors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; qualifier
to socket move constructors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed issues associated with opening serial ports on Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Use the correct constant to initialise the RTS control flag.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Specify a default baud rate (9600).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a lost "outstanding work count" that can occur when
an asynchronous accept operation is automatically restarted.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Consult the &lt;a href="https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/history.html"&gt;Revision
History&lt;/a&gt; for further details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/atomic/"&gt;Atomic&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added a workaround for &lt;code&gt;&lt;span class="identifier"&gt;__float128&lt;/span&gt;&lt;/code&gt;
not being considered as a floating point type by some versions of
libstdc++.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved compatibility with clang-win compiler.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
This is a maintenance update containing bug fixes, and updates to
use the new features delivered in Boost.Asio.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
We'd love to know how you or your company use Beast, consider adding
an entry to the &lt;a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast"&gt;Companies
and Individuals Using Beast&lt;/a&gt; list.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See the full &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html"&gt;Release
Notes&lt;/a&gt; for a complete list of changes.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/circular_buffer/"&gt;Circular Buffer&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix issue &lt;a href="https://github.com/boostorg/circular_buffer/issues/29"&gt;#29&lt;/a&gt;: &lt;code&gt;&lt;span class="identifier"&gt;max_size&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now takes the allocator's &lt;code&gt;&lt;span class="identifier"&gt;max_size&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
into account. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/context/"&gt;Context&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
architecture s390x supported
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
execution_context removed
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/endian/"&gt;Endian&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Made &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;conditional_reverse&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;span class="identifier"&gt;_to_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt;
on GCC and Clang
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added convenience load and store functions
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added floating point convenience typedefs
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a non-const overload of &lt;code&gt;&lt;span class="identifier"&gt;data&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;; changed its return type to &lt;code&gt;&lt;span class="keyword"&gt;unsigned&lt;/span&gt; &lt;span class="keyword"&gt;char&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;__int128&lt;/span&gt;&lt;/code&gt; support
to &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse&lt;/span&gt;&lt;/code&gt;
when available
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a convenience header &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;endian&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/filesystem/"&gt;Filesystem&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Extracted &lt;code&gt;&lt;span class="identifier"&gt;filesystem_error&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;exception&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;; &lt;code&gt;&lt;span class="identifier"&gt;file_status&lt;/span&gt;&lt;/code&gt;
and associated enums and functions to &lt;code&gt;&lt;span class="identifier"&gt;file_status&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;;
&lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;directory_iterator&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;directory&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; For backward compatibility
&lt;code&gt;&lt;span class="identifier"&gt;operations&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; still includes the new headers
&lt;code&gt;&lt;span class="identifier"&gt;exception&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;file_status&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;directory&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;, unless &lt;code&gt;&lt;span class="identifier"&gt;BOOST_FILESYSTEM_NO_DEPRECATED&lt;/span&gt;&lt;/code&gt;
macro is defined. These implicit includes are considered deprecated
and will be removed in a future release. Users are encouraged to
include the new headers directly or include &lt;code&gt;&lt;span class="identifier"&gt;filesystem&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;filesystem_error&lt;/span&gt;&lt;/code&gt;
exception is now implemented in the compiled library of Boost.Filesystem.
Users may need to add linking with Boost.Filesystem library in their
projects.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On POSIX.1-2008 platforms, use &lt;code&gt;&lt;span class="identifier"&gt;utimensat&lt;/span&gt;&lt;/code&gt;
instead of &lt;code&gt;&lt;span class="identifier"&gt;utime&lt;/span&gt;&lt;/code&gt;.
&lt;code&gt;&lt;span class="identifier"&gt;utime&lt;/span&gt;&lt;/code&gt; is declared
obsolete in POSIX.1-2008 and can be disabled e.g. in uClibc-ng. (&lt;a href="https://github.com/boostorg/filesystem/pull/115"&gt;PR#115&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;directory_iterator&lt;/span&gt;&lt;/code&gt;
is now left in the end state on memory allocation errors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In &lt;code&gt;&lt;span class="identifier"&gt;directory_iterator&lt;/span&gt;&lt;/code&gt;
on POSIX systems, support for &lt;code&gt;&lt;span class="identifier"&gt;readdir&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;readdir_r&lt;/span&gt;&lt;/code&gt; has been reworked to
avoid memory allocations for &lt;code&gt;&lt;span class="identifier"&gt;dirent&lt;/span&gt;&lt;/code&gt;
structures when &lt;code&gt;&lt;span class="identifier"&gt;readdir&lt;/span&gt;&lt;/code&gt;
is used. This reduces memory consumption and eliminates the possibility
of buffer overruns in case if &lt;code&gt;&lt;span class="identifier"&gt;readdir&lt;/span&gt;&lt;/code&gt;
produces a very long directory name.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, use Boost.WinAPI to select the target Windows version.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Added &lt;code&gt;&lt;span class="identifier"&gt;directory_options&lt;/span&gt;&lt;/code&gt;
enum, which reflects the same named enum from C++20. The enum is
supported in &lt;code&gt;&lt;span class="identifier"&gt;directory_iterator&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
to customize iteration behavior. In particular, the iterators now
support skipping directories that can't be opened due to insufficient
permissions. The &lt;code&gt;&lt;span class="identifier"&gt;symlink_option&lt;/span&gt;&lt;/code&gt;
enum is now deprecated and should be replaced with &lt;code&gt;&lt;span class="identifier"&gt;directory_options&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
By default, &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
is now reset to the end state in case of errors, as required by C++20.
(&lt;a href="https://github.com/boostorg/filesystem/issues/112"&gt;#112&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Added &lt;code&gt;&lt;span class="identifier"&gt;directory_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;pop_on_error&lt;/span&gt;&lt;/code&gt;
option, which configures &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
so that it attempts to recover from iteration errors by repeatedly
invoking &lt;code&gt;&lt;span class="identifier"&gt;pop&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
until it succeeds or the end state is reached. (&lt;a href="https://github.com/boostorg/filesystem/issues/113"&gt;#113&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Added &lt;code&gt;&lt;span class="identifier"&gt;directory_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;skip_dangling_symlinks&lt;/span&gt;&lt;/code&gt;
option, which configures &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
so that it doesn't follow dangling directory symlinks and continues
iteration instead of reporting an error.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; The following members
of &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
are now marked as deprecated: &lt;code&gt;&lt;span class="identifier"&gt;level&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;no_push_pending&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;no_push_request&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;no_push&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;. Users are advised to replace their
use with the standard counterparts: &lt;code&gt;&lt;span class="identifier"&gt;depth&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;recursion_pending&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;disable_recursion_pending&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;. Note that &lt;code&gt;&lt;span class="identifier"&gt;recursion_pending&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; has the opposite meaning compared
to &lt;code&gt;&lt;span class="identifier"&gt;no_push_pending&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;no_push_request&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;. Deprecated methods will be removed
in a future release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;lexically_relative&lt;/span&gt;&lt;/code&gt; (and any dependent
algorithms) to correctly handle empty, dot and dot-dot path elements
in its argument. The behavior is made closer to C++17 &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;lexically_relative&lt;/span&gt;&lt;/code&gt; in that empty
and dot path elements are ignored and dot-dot path elements are accounted
by decreasing the number of dot-dot path elements to generate in
the resulting relative path. (&lt;a href="https://github.com/boostorg/filesystem/issues/76"&gt;#76&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/functional/factory/"&gt;Functional/Factory&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Glen Fernandes rewrote the implementations of &lt;code&gt;&lt;span class="identifier"&gt;factory&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;value_factory&lt;/span&gt;&lt;/code&gt;
to provide the following features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support r-value arguments when possible
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support arbitrary number of arguments via variadic templates
when possible
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support allocators that are final
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support allocators that use fancy pointers
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for disabled exceptions (&lt;code&gt;&lt;span class="identifier"&gt;BOOST_NO_EXCEPTIONS&lt;/span&gt;&lt;/code&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved compilation times
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The following features have been removed:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Increasing limits for C++03 compilers through &lt;code&gt;&lt;span class="identifier"&gt;BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Using &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;none_t&lt;/span&gt;&lt;/code&gt;
in place of &lt;code&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;/code&gt;
through &lt;code&gt;&lt;span class="identifier"&gt;BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/gil/"&gt;GIL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Lanczos resampling for image down scaling (&lt;a href="https://github.com/boostorg/gil/pull/309"&gt;PR#309&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Methods for binary thresholding, inverted binary
thresholding and truncation thresholding (&lt;a href="https://github.com/boostorg/gil/pull/313"&gt;PR#313&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Otsu thresholding method (&lt;a href="https://github.com/boostorg/gil/pull/314"&gt;PR#314&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Adaptive thresholding using mean or gaussian-weighted
sum of the neighbourhood area (&lt;a href="https://github.com/boostorg/gil/pull/315"&gt;PR#315&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Harris response calculation (corner detector without
non-maximum filtering) (&lt;a href="https://github.com/boostorg/gil/pull/350"&gt;PR#350&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Hessian corner detector (&lt;a href="https://github.com/boostorg/gil/pull/364"&gt;PR#364&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Types for defining 2D kernel, &lt;code&gt;&lt;span class="identifier"&gt;kernel_2d&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;kernel_2d_fixed&lt;/span&gt;&lt;/code&gt;,
in Numeric extension (&lt;a href="https://github.com/boostorg/gil/pull/361"&gt;PR#361&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Implementation of 2D convolution as new function
&lt;code&gt;&lt;span class="identifier"&gt;convolve_2d&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/gil/pull/367"&gt;PR#367&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Box filtering using the average filter (&lt;a href="https://github.com/boostorg/gil/pull/383"&gt;PR#383&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Blur function based on normalized mean filter (&lt;a href="https://github.com/boostorg/gil/pull/383"&gt;PR#383&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Sobel and Scharr operators (&lt;a href="https://github.com/boostorg/gil/pull/392"&gt;PR#392&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GSoC 2019: Median filter to remove noise from image (&lt;a href="https://github.com/boostorg/gil/pull/393"&gt;PR#393&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Continued adding new test cases and significantly improved
overall test coverage.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Documented purpose of &lt;code&gt;&lt;span class="identifier"&gt;cached_location_t&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/gil/pull/287"&gt;PR#287&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Function &lt;code&gt;&lt;span class="identifier"&gt;convolve_1d&lt;/span&gt;&lt;/code&gt;
in Numeric extension for convenient use of &lt;code&gt;&lt;span class="identifier"&gt;convolve_rows&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;convolve_cols&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/gil/pull/347"&gt;PR#347&lt;/a&gt;) and &lt;a href="https://github.com/boostorg/gil/pull/367"&gt;PR#367&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Function &lt;code&gt;&lt;span class="identifier"&gt;extend_boundary&lt;/span&gt;&lt;/code&gt;
in Numeric extension to perform image boundary extension (&lt;a href="https://github.com/boostorg/gil/pull/386"&gt;PR#386&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Project release notes maintained in Markdown file &lt;code&gt;&lt;span class="identifier"&gt;RELEASES&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;md&lt;/span&gt;&lt;/code&gt; (&lt;a href="https://github.com/boostorg/gil/pull/404"&gt;PR#404&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Move all tests, core features and extensions, inside &lt;code&gt;&lt;span class="identifier"&gt;test&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;/code&gt;
directory (&lt;a href="https://github.com/boostorg/gil/pull/302"&gt;PR#302&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Replace Boost.MPL with Boost.MP11 (&lt;a href="https://github.com/boostorg/gil/pull/274"&gt;PR#274&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed use of Boost.TypeTraits (&lt;a href="https://github.com/boostorg/gil/pull/274"&gt;PR#274&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped support for GCC &amp;lt;= 4.8 (&lt;a href="https://github.com/boostorg/gil/pull/296"&gt;PR#296&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove &lt;code&gt;&lt;span class="identifier"&gt;include&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;gil&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;version&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
file as unused (&lt;a href="https://github.com/boostorg/gil/pull/403"&gt;PR#403&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Undetermined value of default-initialized channel and pixel
objects (&lt;a href="https://github.com/boostorg/gil/pull/273"&gt;PR#273&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Undefined behaviour due to &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_trivially_default_constructible&lt;/span&gt;&lt;/code&gt;
specializations (&lt;a href="https://github.com/boostorg/gil/pull/284"&gt;PR#284&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Crash when reading PNG files with an invalid header (&lt;a href="https://github.com/boostorg/gil/pull/385"&gt;PR#385&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Applied the Rule of Three for numerous types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed uses of deprecated implicit definition of defaulted
copy assignment operator or copy constructor.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/histogram/"&gt;Histogram&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Several new features and performance improvements, some bug-fixes
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See the full &lt;a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html"&gt;Release
Notes&lt;/a&gt; for a complete list of changes
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/log/"&gt;Log&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improved compatibility with clang-win compiler.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/mpi/"&gt;MPI&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Documentation clarifications.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed scatterv bug when using explicit input buffer offsets.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enable usage of MPI_Probe and friend with Intel MPI &amp;gt;= 2019.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Symbol visibility on Windows
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added Hypergeometric functions 1F0, 0F1, 2F0, 1F1 and pFq.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Jacobi polynomial (and derivatives) evaluation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Gegenbauer polynomial (and derivatives) evaluation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Cardinal B-Splines (and derivatives) as polynomial functions
in their own right.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Cardinal Trigonometric Interpolation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added new statistics sub-section.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added One Sample Student's T Test.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Anderson Darling test for normality.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Ljung Box test for auto-correlation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Runs test for random sequences.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The headers &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;univariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;bivariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;, have been deprecated in favor
of &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;statistics&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;univariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;statistics&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;bivariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added The Empirical CDF distribution.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Reworked the Sterling approximation used by multiprecision gamma
functions to be applicable to all the function that use the Lanczos
approximation at regular precision. Also extended Lanczos approximations
up to 100 decimal digit precision.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multiprecision/"&gt;Multiprecision&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Big &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; update
allows cpp_int and float128 arithmetic to be fully &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; with gcc and clang 9 or
later, or any compiler supporting &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_constant_evaluated&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix bug in variable precision mpf_float which causes it to go into
a tailspin trying to select the correct precision - see https://github.com/boostorg/multiprecision/issues/164.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/outcome/"&gt;Outcome&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Enhancements:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Standalone outcome is now &lt;code&gt;&lt;span class="identifier"&gt;make&lt;/span&gt;
&lt;span class="identifier"&gt;install&lt;/span&gt;&lt;/code&gt;-able, and
cmake &lt;code&gt;&lt;span class="identifier"&gt;find_package&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; can find it. Note that you
must separately install and &lt;code&gt;&lt;span class="identifier"&gt;find_package&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; Outcome's dependency, quickcpplib,
else &lt;code&gt;&lt;span class="identifier"&gt;find_package&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; of Outcome will fail.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The git submodule mechanism used by standalone Outcome of specifying
dependent libraries has been replaced with a cmake superbuild
of dependencies mechanism instead. Upon cmake configure, an
internal copy of quickcpplib will be git cloned, built and
installed into the build directory from where an internal
&lt;code&gt;&lt;span class="identifier"&gt;find_package&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; uses it. This breaks the
use of the unconfigured Outcome repo as an implementation of
Outcome, one must now do one of: 1. Add Outcome as subdirectory
to cmake build. 2. Use cmake superbuild (i.e. &lt;code&gt;&lt;span class="identifier"&gt;ExternalProject_Add&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;)
to build and install Outcome into a local installation. 3.
Use one of the single header editions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
For standalone Outcome, the current compiler is now checked
for whether it will compile code containing C++ Concepts, and
if it does, all cmake consumers of Outcome will enable C++
Concepts. Set the cmake variable &lt;code&gt;&lt;span class="identifier"&gt;CXX_CONCEPTS_FLAGS&lt;/span&gt;&lt;/code&gt;
to an empty string to prevent auto detection and enabling of
C++ Concepts support occurring.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY&lt;/span&gt;&lt;/code&gt;
operation now hints to the compiler that operation will be
successful. &lt;a href="https://wg21.link/P1886"&gt;P1886 &lt;strong&gt;Error speed benchmarking&lt;/strong&gt;&lt;/a&gt; showed
that there is considerable gain in very small functions by
hinting to the compiler whether the expression is expected
to be successful or not. &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY&lt;/span&gt;&lt;/code&gt;
previously did not hint to the compiler at all, but now it
does. A new suite of macros &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY_FAILURE_LIKELY&lt;/span&gt;&lt;/code&gt;
hint to the compiler that failure is expected. If you wish
to return to the previously unhinted behaviour, define &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY_LIKELY&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;expr&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="special"&gt;(!!&lt;/span&gt;&lt;span class="identifier"&gt;expr&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/199"&gt;#199&lt;/a&gt;
Support for C++ Coroutines has been added. This comes in two
parts, firstly there is now an &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_CO_TRY&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; operation suitable for performing
the &lt;code&gt;&lt;span class="identifier"&gt;TRY&lt;/span&gt;&lt;/code&gt; operation
from within a C++ Coroutine. Secondly, in the header &lt;code&gt;&lt;span class="identifier"&gt;outcome&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;coroutine_support&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; there are implementations
of &lt;code&gt;&lt;span class="identifier"&gt;eager&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;OutcomeType&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;lazy&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;OutcomeType&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
which let you more naturally and efficiently use &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;/code&gt; or &lt;code&gt;&lt;span class="identifier"&gt;basic_outcome&lt;/span&gt;&lt;/code&gt; from within
C++ Coroutines -- specifically, if the result or outcome will
construct from an exception pointer, exceptions thrown in the
coroutine return an errored or excepted result with the thrown
exception instead of throwing the exception through the coroutine
machinery (which in current compilers, has a high likelihood
of blowing up the program). Both &lt;code&gt;&lt;span class="identifier"&gt;eager&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;lazy&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; can accept any &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt; as well. Both have been
tested and found working on VS2019 and clang 9.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/210"&gt;#210&lt;/a&gt;
&lt;code&gt;&lt;span class="identifier"&gt;make_error_code&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;make_exception_ptr&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; are now additionally considered
for compatible copy and move conversions for &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;.
This lets you construct a &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;E&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; into a &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;, where &lt;code&gt;&lt;span class="identifier"&gt;E&lt;/span&gt;&lt;/code&gt;
is a custom type which has implemented the ADL discovered free
function &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;
&lt;span class="identifier"&gt;make_error_code&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;E&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;,
but is otherwise unrelated to &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;.
The same availability applies for &lt;code&gt;&lt;span class="identifier"&gt;exception_ptr&lt;/span&gt;&lt;/code&gt;
with &lt;code&gt;&lt;span class="identifier"&gt;make_exception_ptr&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; being the ADL discovered
free function. &lt;code&gt;&lt;span class="identifier"&gt;basic_outcome&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt; has less support for
this than &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt; in order to keep constructor
count down, but it will accept via this mechanism conversions
from &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;failure_type&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/184"&gt;#184&lt;/a&gt;
The detection of &lt;code&gt;&lt;span class="special"&gt;[[&lt;/span&gt;&lt;span class="identifier"&gt;nodiscard&lt;/span&gt;&lt;span class="special"&gt;]]&lt;/span&gt;&lt;/code&gt;
support in the compiler was very mildly broken.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/poly_collection/"&gt;PolyCollection&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/preprocessor/"&gt;Preprocessor&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Topic added which discusses emptiness
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for the C++20 &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
construct
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PP_VARIADIC_HAS_OPT&lt;/span&gt;&lt;/code&gt;
whether &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
is supported at the C++20 level
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PP_CHECK_EMPTY&lt;/span&gt;&lt;/code&gt;
test for emptiness using &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
at the C++20 level
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PP_VA_OPT&lt;/span&gt;&lt;/code&gt;
more flexible alternative to &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
at the C++20 level
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/smart_ptr/"&gt;Smart Pointers&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implemented &lt;code&gt;&lt;span class="identifier"&gt;allocate_unique&lt;/span&gt;&lt;/code&gt;
for scalars and arrays. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.test v3.12 see the &lt;a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html"&gt;Changes
log&lt;/a&gt; for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New feature:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for C++17 &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;
has been added.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Better diagnostic on &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;exception&lt;/span&gt;&lt;/code&gt;
and no rtti mode (thanks to Mikhail Pilin / [pull_request 234])
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes and pull requests:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Issues: &lt;a href="https://github.com/boostorg/test/issues/206"&gt;#206&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/217"&gt;#217&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/223"&gt;#223&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/229"&gt;#229&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Pull Requests: &lt;a href="https://github.com/boostorg/test/pull/227"&gt;PR#227&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/231"&gt;PR#231&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/232"&gt;PR#232&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/pull/234"&gt;PR#234&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/vmd/"&gt;VMD&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_VMD_IS_EMPTY&lt;/span&gt;&lt;/code&gt;
updated to use &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
at the C++20 level has 100% reliability
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_72_0.compilers_tested"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Compilers Tested&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Boost's primary test compilers are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 4.0.1, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Boost's additional test compilers include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_72_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow and Michael Caisse managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.71.0</title><link>https://www.boost.org/users/history/version_1_71_0.html</link><guid>https://www.boost.org/users/history/version_1_71_0.html</guid><pubDate>Mon, 19 Aug 2019 15:31:22 +0000</pubDate><description>
&lt;div id="version_1_71_0.new_libraries"&gt;
&lt;h3&gt;&lt;span class="link"&gt;New Libraries&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/variant2/"&gt;Variant2&lt;/a&gt;:&lt;/span&gt; A never-valueless,
strong guarantee implementation of &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;variant&lt;/span&gt;&lt;/code&gt;,
from Peter Dimov.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_71_0.updated_libraries"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated Libraries&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/align/"&gt;Align&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for any integral type in the integral versions of &lt;code&gt;&lt;span class="identifier"&gt;align_up&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;align_down&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Revised the implementation of &lt;code&gt;&lt;span class="identifier"&gt;aligned_allocator&lt;/span&gt;&lt;/code&gt;
to no longer require a specialization for &lt;code&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Define &lt;code&gt;&lt;span class="identifier"&gt;propagate_on_container_move_assignment&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;is_always_equal&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;aligned_allocator&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/asio/"&gt;Asio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improved performance slightly by eliminating a redundant move construction
when completed handlers are dispatched.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Eliminated a compiler warning by annotating a &lt;code&gt;&lt;span class="keyword"&gt;case&lt;/span&gt;&lt;/code&gt;
fall-through in the free function &lt;code&gt;&lt;span class="identifier"&gt;connect&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; implementation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the &lt;code&gt;&lt;span class="identifier"&gt;is_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;span class="identifier"&gt;_buffer_sequence&lt;/span&gt;&lt;/code&gt; detection traits
for user-defined sequence types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed some Windows-specific warnings about an incompatible pointer
cast when obtaining the &lt;code&gt;&lt;span class="identifier"&gt;CancelIoEx&lt;/span&gt;&lt;/code&gt;
entry point.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed to automatically set the defaults when opening a serial port
on Windows.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the serial port &lt;code&gt;&lt;span class="identifier"&gt;get_option&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; member function to be const.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a name hiding issue with the WinRT stream-oriented socket backend's
&lt;code&gt;&lt;span class="identifier"&gt;shutdown&lt;/span&gt;&lt;/code&gt; function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Applied a minor fix to the documentation for &lt;code&gt;&lt;span class="identifier"&gt;is_dynamic_buffer&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added some support for Haiku OS.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added wolfSSL compatability.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed to require C++17 or later for coroutines TS support with
clang.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a doxygen generation problem in the tutorial.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensured example programs are correctly incorporated into the documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/any/"&gt;Any&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Static initialization of the default constructed &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;any&lt;/span&gt;&lt;/code&gt;
is now possible.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed performance regression in assignment on a compilers without
move-semantics.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
This version consists mostly of bug fixes and performance improvements.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Substantial work included for the split compilation mode, to reduce
compile time when defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_BEAST_SEPARATE_COMPILATION&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
We'd love to know how you or your company use Beast, consider adding
an item to the &lt;a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast"&gt;Companies
and Individuals Using Beast&lt;/a&gt; list.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See the full &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html"&gt;Release
Notes&lt;/a&gt; for a complete list of changes.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/circular_buffer/"&gt;Circular Buffer&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct doxygen generated reference to no longer show internal members.
(Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Eliminate ubsan warning on &lt;code&gt;&lt;span class="identifier"&gt;add&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;sub&lt;/span&gt;&lt;/code&gt;. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix incorrect check in &lt;code&gt;&lt;span class="identifier"&gt;is_uninitialized&lt;/span&gt;&lt;/code&gt;.
(Niklas Fejes)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/container/"&gt;Container&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bugs:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/pull/47"&gt;GitHub
#47: &lt;em&gt;"added alignment specification for small_vector"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/88"&gt;GitHub
#88: &lt;em&gt;"Implement C++17 MoveAssignable requirements
for self-move assignments"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/107"&gt;GitHub
#107: &lt;em&gt;"Alignment ignored in resource_adaptor"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/pull/109"&gt;GitHub
#109: &lt;em&gt;"Get rid of integer overflow in copy_move_algo.hpp
(-fsanitize=integer)"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/pull/110"&gt;GitHub
#110: &lt;em&gt;"Avoid gcc 9 deprecated copy warnings
in new_allocator.hpp"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/112"&gt;GitHub
#112: &lt;em&gt;"vector::resize() compilation error with
msvc-10..12: data is not a member of boost::detail::aligned_storage"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/114"&gt;GitHub
#114: &lt;em&gt;"Fix small_vector noexcept specification"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/116"&gt;GitHub
#116: &lt;em&gt;"MSVC + boost 1.70 compilation error when
windows.h is already included (detail/thread_mutex.hpp)"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/117"&gt;GitHub
#117: &lt;em&gt;"flat_map/map::insert_or_assign with hint
has wrong return types"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/118"&gt;GitHub
#118: &lt;em&gt;"Non-unique inplace_set_difference used
in in flat_tree_merge_unique and iterator invalidation in insert_unique"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/122"&gt;GitHub
#122: &lt;em&gt;"Fix has_trivial_destructor_after_move"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/123"&gt;GitHub
#123: &lt;em&gt;"With heterogeneous lookup, &lt;code&gt;&lt;span class="identifier"&gt;equal_range&lt;/span&gt;&lt;/code&gt; can result in
a range with length greater than 1"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;deque&lt;/code&gt; can now
have options, using &lt;code&gt;deque_options&lt;/code&gt;.
The block size/bytes can be be specified.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;static_vector&lt;/code&gt;
can now have options, using &lt;code&gt;static_vector_options&lt;/code&gt;.
Alignment and throwing behaviour can be be specified.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;small_vector&lt;/code&gt;
can now have options, using &lt;code&gt;small_vector_options&lt;/code&gt;.
Alignment and growth factor can be be specified.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/context/"&gt;Context&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Add support for RISC-V LP64D
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/72"&gt;#72&lt;/a&gt;: Fix ABI violation on ppc64 ELFv2
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/99"&gt;#99&lt;/a&gt;: cleanup of stack if creating ucontext fails
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/conversion/"&gt;Conversion&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/core/"&gt;Core&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added functions &lt;code&gt;&lt;span class="identifier"&gt;alloc_construct&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;alloc_construct_n&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;alloc_destroy&lt;/span&gt;&lt;/code&gt;, and
&lt;code&gt;&lt;span class="identifier"&gt;alloc_destroy_n&lt;/span&gt;&lt;/code&gt; in
&lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;alloc_construct&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; for allocator aware and exception
safe construction and destruction of objects and arrays. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added constexpr functions &lt;code&gt;&lt;span class="identifier"&gt;first_scalar&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;first_scalar&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; for obtaining a pointer to the
first scalar element of an array. Given a pointer of type &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
they return a pointer of type &lt;code&gt;&lt;span class="identifier"&gt;remove_all_extents_t&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;*&lt;/span&gt;&lt;/code&gt;. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added class template &lt;code&gt;&lt;span class="identifier"&gt;noinit_adaptor&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;noinit_adaptor&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; which is an allocator adaptor
that converts any allocator into one whose &lt;code&gt;&lt;span class="identifier"&gt;construct&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;ptr&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; performs default initialization
via placement new, and whose &lt;code&gt;&lt;span class="identifier"&gt;destroy&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;ptr&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; invokes the &lt;code&gt;&lt;span class="identifier"&gt;value_type&lt;/span&gt;&lt;/code&gt;
destructor directly. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added class template &lt;code&gt;&lt;span class="identifier"&gt;default_allocator&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;default_allocator&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;, which can serve as a minimal
default allocator that has interface similar to C++20 &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;allocator&lt;/span&gt;&lt;/code&gt;, supports configurations
with disabled exceptions and does not have &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;/code&gt;
as an associated namespace. The allocator uses &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;
&lt;span class="keyword"&gt;new&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;
&lt;span class="keyword"&gt;delete&lt;/span&gt;&lt;/code&gt; for allocation. (Glen
Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;uncaught_exceptions&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; header, added workarounds for
better compatibility with QNX SDP 7.0 when libc++/libc++abi libraries
are used. (Andrey Semashev, &lt;a href="https://github.com/boostorg/core/issues/59"&gt;#59&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;detail&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;sp_typeinfo&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; header is now marked as deprecated
and will be removed in a future release. &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;typeinfo&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
should be used instead. (Peter Dimov)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/dynamic_bitset/"&gt;Dynamic Bitset&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Enabled hardware-assisted popcount on MSVC (&lt;a href="https://github.com/boostorg/dynamic_bitset/pull/38"&gt;PR#38&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for boost::hash and std::hash (&lt;a href="https://github.com/boostorg/dynamic_bitset/pull/45"&gt;PR#45&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support copy-initialization with default constructor (&lt;a href="https://github.com/boostorg/dynamic_bitset/pull/48"&gt;PR#48&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/endian/"&gt;Endian&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clarified requirements on the value type template parameter
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="keyword"&gt;float&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="keyword"&gt;double&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;endian_load&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;endian_store&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse&lt;/span&gt;&lt;/code&gt;
to correctly support all non-&lt;code&gt;&lt;span class="keyword"&gt;bool&lt;/span&gt;&lt;/code&gt;
integral types
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Moved deprecated names to the deprecated header &lt;code&gt;&lt;span class="identifier"&gt;endian&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/fiber/"&gt;Fiber&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
documentation for shared_work updated
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/filesystem/"&gt;Filesystem&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed incorrect &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
returned from directory iterator increment when &lt;code&gt;&lt;span class="identifier"&gt;readdir_r&lt;/span&gt;&lt;/code&gt;
is used.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
For &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;, fixed rvalue-aware
&lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;/code&gt;
return type to return an rvalue instead of rvalue reference. This
fixes leaving a dangling reference in the user's code if the result
of &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;/code&gt;
is bound to a const reference. (&lt;a href="https://github.com/boostorg/filesystem/issues/110"&gt;#110&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes for better compatibility with Windows CE. (&lt;a href="https://github.com/boostorg/filesystem/pull/24"&gt;PR#24&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added minimal support for CMake. (&lt;a href="https://github.com/boostorg/filesystem/pull/106"&gt;PR#106&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/flyweight/index.html"&gt;Flyweight&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/histogram/index.html"&gt;Histogram&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for thread-safe storages and new thread-safe accumulators
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for compiling without exceptions/RTTI (increases performance
by 10-20 %) (with Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Performance improvements for 1D and 2D histograms
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::indexed now returns forward iterator range
instead of input iterator range
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::indexed_range::accessor is now non-copyable
and acts like reference to cell value, making more algorithms
from the C++ stdlib work
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::algorithm::reduce with new slice option and
option fusion
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::algorithm::project accepts runtime indices
for static histograms
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug Fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::algorithm::reduce also works on histograms
that have some axis types without reduction support
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
boost::histogram::axis::traits::update now works correctly
for boost::histogram::axis::variant
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Other:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
100 % test coverage
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Reduced internal Boost dependencies
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved documentation and examples
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Guaranteed no-throw moves for all builtin axis types
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Compile cleanly at higher warning levels
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See &lt;a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html"&gt;changelog&lt;/a&gt;
for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/iostreams/"&gt;IoStreams&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed processing of multi-stream files (&lt;a href="https://github.com/boostorg/iostreams/pull/87"&gt;PR#87&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for multi-threaded LZMA (&lt;a href="https://github.com/boostorg/iostreams/pull/95"&gt;PR#95&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/interprocess/"&gt;Interprocess&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/interprocess/pull/85"&gt;GitHub
#85 (&lt;em&gt;"warning: Implicit conversion loses integer precision"&lt;/em&gt;)&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/interprocess/pull/86"&gt;GitHub
#86 (&lt;em&gt;"warning: Possible misuse of comma operator"&lt;/em&gt;)&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/intrusive/"&gt;Intrusive&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/intrusive/pull/42"&gt;GitHub
#42: &lt;em&gt;Documentation does not describe treap priority_of_value
changes&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/intrusive/pull/43"&gt;GitHub
#43: &lt;em&gt;Fix tests with BOOST_INTRUSIVE_VARIADIC_TEMPLATES
enabled&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/intrusive/pull/45"&gt;GitHub
#45: &lt;em&gt;Disable variadic templates for MSVC-12 to avoid ICEs&lt;/em&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/lexical_cast/"&gt;LexicalCast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added tests for &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;filesystem&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
conversions &lt;a href="https://github.com/boostorg/lexical_cast/issues/25"&gt;#25&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including &lt;a href="https://github.com/boostorg/lexical_cast/issues/28"&gt;#28&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/log/"&gt;Log&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for C++17 &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;basic_formatting_ostream&lt;/span&gt;&lt;/code&gt;.
The string view can now participate in character code conversion
on output.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;auto_newline&lt;/span&gt;&lt;/code&gt;
formatter and stream manipulator. It can be used to ensure
that formatted output always ends with a newline while avoiding
duplicate newlines.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In the output stream, text file and text multi-file sink backends
added support for configuring behavior with regard to appending
a trailing newline to every formatted log record. Use &lt;code&gt;&lt;span class="identifier"&gt;auto_newline_mode&lt;/span&gt;&lt;/code&gt; named parameter
of the backend constructor or call the &lt;code&gt;&lt;span class="identifier"&gt;set_auto_newline_mode&lt;/span&gt;&lt;/code&gt;
method on the sink backend.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The default behavior
with regard to trailing newlines added by sink backends has
changed slightly compared to the previous Boost.Log releases.
The backends will now only add a trailing newline if there
isn't one in the formatted log message string already. In previous
releases a newline was added unconditionally.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for passing arbitrary function objects in the
&lt;code&gt;&lt;span class="identifier"&gt;filter&lt;/span&gt;&lt;/code&gt; and
&lt;code&gt;&lt;span class="identifier"&gt;format&lt;/span&gt;&lt;/code&gt; named
parameters to sink constructors and convenience functions for
initializing sinks. For example, it is now possible to specify
C++11 lambda functions directly in these parameters. (&lt;a href="https://github.com/boostorg/log/issues/63"&gt;#63&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In the default filter and formatter factories used in filter
and formatter parsers, added support for severity level attribute
values of type &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;log&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;trivial&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;severity_level&lt;/span&gt;&lt;/code&gt;.
For filters, the support is limited to attributes with "Severity"
name.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed incorrect parsing of components of the rotated file names
while scanning for files in the text file sink backend. If
the file name pattern ended with a placeholder (for example,
a file counter), the &lt;code&gt;&lt;span class="identifier"&gt;scan_for_files&lt;/span&gt;&lt;/code&gt;
method would not find files matching that pattern in the target
storage, leaving them unmanaged. In particular, such files
would not be deleted to free target storage. (&lt;a href="https://github.com/boostorg/log/issues/78"&gt;#78&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated &lt;code&gt;&lt;span class="identifier"&gt;basic_formatting_ostream&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;basic_record_ostream&lt;/span&gt;&lt;/code&gt;
to make it possible to overload stream output operators for
pointers to user-defined types. User-defined &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;lt;&lt;/span&gt;&lt;/code&gt;
overloads taking &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_ostream&lt;/span&gt;&lt;/code&gt;
and a pointer argument should now be picked up by the compiler
when the pointer is being written to one of Boost.Log streams.
(&lt;a href="https://github.com/boostorg/log/issues/84"&gt;#84&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See &lt;a href="https://www.boost.org/libs/log/doc/html/log/changelog.html"&gt;changelog&lt;/a&gt;
for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Catmull-Rom interpolator now works in C++11
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Cardinal quadratic B-spline interpolation
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Domain of elliptic integrals extended
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
sin_pi and cos_pi performance improvements
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Forward-mode automatic differentiation
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Vector valued barycentric rational interpolation
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ooura's method for evaluation of Fourier integrals
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Multiple compatibility issues with Multiprecision fixed
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Lambert-W fixed on a rare architecture
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/metaparse/"&gt;Metaparse&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
In C++11 variadic template support for the following: &lt;code&gt;&lt;span class="identifier"&gt;sequence&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;one_of_c&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;one_of&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;repeated_one_of&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;repeated_one_of1&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;one_char_except_c&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;one_char_except&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_METAPARSE_STRING&lt;/span&gt;&lt;/code&gt;
does not use out of range character values as template arguments.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;any_of_c&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
does not create empty array in C++14.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/move/"&gt;Move&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/move/issues/26"&gt;Git Issue
#26: &lt;em&gt;"Invalid iterator increment/decrement in the
last iteration of adaptive_sort_combine_blocks"&lt;/em&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multi_array/"&gt;Multi Array&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Simplify allocator support by using new &lt;code&gt;&lt;span class="identifier"&gt;alloc_construct_n&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;alloc_destroy_n&lt;/span&gt;&lt;/code&gt;
facilities from Core. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multi_index/"&gt;Multi-index Containers&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;a href="https://www.boost.org/libs/multi_index/doc/tutorial/key_extraction.html#x_mem_fun"&gt;variants
of &lt;code&gt;&lt;span class="identifier"&gt;const_mem_fun&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;mem_fun&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;
for differently qualified member functions (issue &lt;a href="https://github.com/boostorg/multi_index/issues/24"&gt;#24&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Terse &lt;a href="https://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#key"&gt;&lt;code&gt;&lt;span class="identifier"&gt;key&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; specification syntax
now correctly handles &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt;-specified
member functions (issue &lt;a href="https://github.com/boostorg/multi_index/issues/24"&gt;#24&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/outcome/"&gt;Outcome&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Enhancements:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/184"&gt;#184&lt;/a&gt;
As per request from Boost release managers, relocated &lt;code&gt;&lt;span class="identifier"&gt;version&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;revision&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
into detail, and added the Boost licence boilerplate to the
top of every source file which was missing one (I think). Also
took the opportunity to run the licence restamping script over
all Outcome, so copyright dates are now up to date.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/185"&gt;#185&lt;/a&gt;
Add FAQ item explaining issue #185, and why we will do nothing
to fix it right now.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/189"&gt;#189&lt;/a&gt;
Refactored the &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY&lt;/span&gt;&lt;/code&gt;
implementation to use more clarified customisation points capable
of accepting very foreign inputs. Removed the &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;expected&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt;
&lt;span class="identifier"&gt;E&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
specialisations, as those are no longer necessary. Fixed the
documentation for the customisation points which previously
claimed that they are ADL discovered, which they are not. Added
a recipe describing how to add in support for foreign input
types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/183"&gt;#183&lt;/a&gt;
Added a separate &lt;code&gt;&lt;span class="identifier"&gt;motivation&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;plug_error_code&lt;/span&gt;&lt;/code&gt;
specifically for Boost.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_VERSION_MINOR&lt;/span&gt;&lt;/code&gt;
hadn't been updated to 1.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/181"&gt;#181&lt;/a&gt;
Fix issue #181 where Outcome didn't actually implement the
strong swap guarantee, despite being documented as doing so.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/190"&gt;#190&lt;/a&gt;
Fix issue #190 in Boost edition where unit test suite was not
runnable from the Boost release distro.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/182"&gt;#182&lt;/a&gt;
Fix issue #182 where &lt;code&gt;&lt;span class="identifier"&gt;trait&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_exception_ptr_available&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; was always true, thus causing
much weirdness, like not printing diagnostics and trying to
feed everything to &lt;code&gt;&lt;span class="identifier"&gt;make_exception_ptr&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/192"&gt;#192&lt;/a&gt;
Fix issue #192 where the &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_outcome_failure_exception_from_error&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; was being defined twice for
translation units which combine standalone and Boost Outcome's.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/parameter/doc/html/index.html"&gt;Parameter&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Upgraded keyword generation macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_TEMPLATE_KEYWORD&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/15"&gt;PR#15&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Moved keyword generation macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NESTED_KEYWORD&lt;/span&gt;&lt;/code&gt;
from &lt;a href="https://www.boost.org/libs/accumulators/doc/html/index.html"&gt;Accumulators&lt;/a&gt;
to this library (&lt;a href="https://github.com/boostorg/parameter/pull/28"&gt;PR#28&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;reference_wrapper&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;ref&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/16"&gt;PR#16&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Moved &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;required&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;optional&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;deduced&lt;/span&gt;&lt;/code&gt; metafunction definitions
to their own header files in directory boost/parameter (&lt;a href="https://github.com/boostorg/parameter/pull/18"&gt;PR#18&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for Boost.&lt;a href="https://www.boost.org/libs/parameter/doc/html/index.html"&gt;Parameter&lt;/a&gt;-enabled
function call operators (&lt;a href="https://github.com/boostorg/parameter/pull/20"&gt;PR#20&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for parameter category qualifiers "forward",
"consume", and "move_from" (current qualifiers
are "in", "out", and "in_out") (&lt;a href="https://github.com/boostorg/parameter/pull/21"&gt;PR#21&lt;/a&gt;)
(&lt;a href="https://github.com/boostorg/parameter/pull/23"&gt;PR#23&lt;/a&gt;) based on &lt;a href="http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters"&gt;http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters&lt;/a&gt;.
Added new usage syntax &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NAME&lt;/span&gt;&lt;span class="special"&gt;((&lt;/span&gt;&lt;span class="identifier"&gt;object&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;),&lt;/span&gt; &lt;span class="keyword"&gt;namespace&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt; &lt;span class="identifier"&gt;qualifier&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;tag&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;))&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NAME&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;qualifier&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;))&lt;/span&gt;&lt;/code&gt;. (Existing code that uses qualifiers
directly and correctly with &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_FUNCTION&lt;/span&gt;&lt;/code&gt;
and other code generation macros should remain unaffected for now,
so no breaking changes.) The reason for the change in usage is to
enable applying of parameter category constraints to Boost.&lt;a href="https://www.boost.org/libs/parameter/doc/html/index.html"&gt;Parameter&lt;/a&gt;-enabled
functions and constructors invoked through argument composition.
(Otherwise, it is currently possible to use argument composition
to bypass parameter category constraints applied in &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_FUNCTION&lt;/span&gt;&lt;/code&gt; et. al.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for perfect forwarding (&lt;a href="https://github.com/boostorg/parameter/pull/23"&gt;PR#23&lt;/a&gt;) (&lt;a href="https://github.com/boostorg/parameter/pull/26"&gt;PR#26&lt;/a&gt;),
so that &lt;code&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameters&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; can accept non-&lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;/code&gt;
rvalues. As a positive side effect, Boost.&lt;a href="https://www.boost.org/libs/parameter/doc/html/index.html"&gt;Parameter&lt;/a&gt;-enabled
functions and constructors are no longer bound by &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_MAX_ARITY&lt;/span&gt;&lt;/code&gt;
on compilers that support perfect forwarding. User code can now check
for this support by detecting the configuration macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_HAS_PERFECT_FORWARDING&lt;/span&gt;&lt;/code&gt;,
or manually turn off this support by defining the configuration macro
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added metafunctions &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_argument_pack&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/27"&gt;PR#27&lt;/a&gt;), &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;are_tagged_arguments&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/52"&gt;PR#52&lt;/a&gt;), and &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;result_of&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;compose&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/75"&gt;PR#75&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added variadic function template &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;compose&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; which takes in named arguments
and returns them in an argument pack (&lt;a href="https://github.com/boostorg/parameter/pull/52"&gt;PR#52&lt;/a&gt;). For compilers
that do not support perfect forwarding, the configuration macro
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_COMPOSE_MAX_ARITY&lt;/span&gt;&lt;/code&gt;
determines the maximum number of arguments that &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parameter&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;compose&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; can take in (&lt;a href="https://github.com/boostorg/parameter/pull/61"&gt;PR#61&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added code generation macros &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_FUNCTION&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/52"&gt;PR#52&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for Boost.&lt;a href="https://www.boost.org/libs/mp11/doc/html/mp11.html"&gt;MP11&lt;/a&gt;
(&lt;a href="https://github.com/boostorg/parameter/pull/47"&gt;PR#47&lt;/a&gt;) (&lt;a href="https://github.com/boostorg/parameter/pull/66"&gt;PR#66&lt;/a&gt;) (&lt;a href="https://github.com/boostorg/parameter/pull/70"&gt;PR#70&lt;/a&gt;). User code
can now check for this support by detecting the configuration macro
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_CAN_USE_MP11&lt;/span&gt;&lt;/code&gt;,
or manually turn off this support by defining the configuration macro
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_PARAMETER_DISABLE_MP11_USAGE&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for parameter-dependent return types via SFINAE
(&lt;a href="https://github.com/boostorg/parameter/pull/73"&gt;PR#73&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/ptr_container/"&gt;PtrContainer&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix a ptr_vector regression introduced in 1.66.0 (&lt;a href="https://github.com/boostorg/ptr_container/pull/24"&gt;PR#24&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/poly_collection/"&gt;PolyCollection&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/smart_ptr/"&gt;SmartPtr&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added aliasing constructors to &lt;code&gt;&lt;span class="identifier"&gt;weak_ptr&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;weak_ptr&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;empty&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;enable_shared_from&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;shared_from&lt;/span&gt;&lt;/code&gt;, and
&lt;code&gt;&lt;span class="identifier"&gt;weak_from&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/stacktrace/"&gt;Stacktrace&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed output of &lt;code&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;source_location&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;source_line&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; for the default constructed &lt;code&gt;&lt;span class="identifier"&gt;frame&lt;/span&gt;&lt;/code&gt; with thread sanitizer builds
in C++98 mode.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed output of long strings from &lt;code&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;source_location&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; on MSVC &lt;a href="https://github.com/boostorg/stacktrace/issues/78"&gt;#78&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.test v3.11 see the &lt;a href="https://www.boost.org/users/history/libs/test/doc/html/boost_test/change_log.html"&gt;Changes
log&lt;/a&gt; for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Breaking changes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Test shows deprecation warnings if some very old headers
as deprecated. If you encounter such warnings, please follow
the indications: those headers will be removed in a future
release.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New feature:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Now &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TEST&lt;/span&gt;&lt;/code&gt;
can be used to compare abstract types
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes and pull requests:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Issues: &lt;a href="https://github.com/boostorg/test/issues/209"&gt;#209&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/218"&gt;#218&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Pull Requests: &lt;a href="https://github.com/boostorg/test/pull/219"&gt;PR#219&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/224"&gt;PR#224&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/utility/"&gt;Utility&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implemented function template &lt;code&gt;&lt;span class="identifier"&gt;ostream_string&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;utility&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;ostream_string&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; to optimally write any kind of
string content to an output stream. It satisfies the requirements
of [ostream.formatted.reqmts]. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimized the stream output operators of &lt;code&gt;&lt;span class="identifier"&gt;basic_string_view&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;basic_string_ref&lt;/span&gt;&lt;/code&gt;
to write directly to the &lt;code&gt;&lt;span class="identifier"&gt;rdbuf&lt;/span&gt;&lt;/code&gt;
stream buffer. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/uuid/"&gt;Uuid&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Breaking change:&lt;/strong&gt; MD5 name-based
uuid generation was corrected to be identical on all endian systems.
Define &lt;code&gt;&lt;span class="identifier"&gt;BOOST_UUID_COMPAT_PRE_1_71_MD5&lt;/span&gt;&lt;/code&gt;
to keep the result in a format compatible with 1.66 through 1.70.
This does not affect the default name-based uuid generation which
is based on SHA1. (&lt;a href="https://github.com/boostorg/uuid/pull/109"&gt;PR#109&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/variant/"&gt;Variant&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compilation of &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;apply_visitor&lt;/span&gt;&lt;/code&gt;
with variants passed by non const reference in &lt;a href="https://github.com/boostorg/variant/pull/68"&gt;PR#68&lt;/a&gt;. Many
thanks to Ed Catmur for providing the fix.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for std::hash (&lt;a href="https://github.com/boostorg/variant/pull/49"&gt;PR#49&lt;/a&gt;). Macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASH&lt;/span&gt;&lt;/code&gt;
could be defined to avoid those specializations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added micro optimizations for binary size and performance by Nikita
Kniazev in &lt;a href="https://github.com/boostorg/variant/pull/63"&gt;PR#63&lt;/a&gt; and &lt;a href="https://github.com/boostorg/variant/pull/66"&gt;PR#66&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including &lt;a href="https://github.com/boostorg/variant/pull/64"&gt;PR#64&lt;/a&gt; by Nikita Kniazev and &lt;a href="https://github.com/boostorg/variant/pull/67"&gt;PR#67&lt;/a&gt; by
Hans Dembinski.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/yap/"&gt;YAP&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added an example showing how to make self-evaluating YAP expressions
(that is, expressions that don't need an explicit call to &lt;code&gt;&lt;span class="identifier"&gt;evaluate&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;transform&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_71_0.compilers_tested"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Compilers Tested&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Boost's primary test compilers are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 4.0.1, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Boost's additional test compilers include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_71_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow and Michael Caisse managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.70.0</title><link>https://www.boost.org/users/history/version_1_70_0.html</link><guid>https://www.boost.org/users/history/version_1_70_0.html</guid><pubDate>Fri, 12 Apr 2019 06:04:48 +0000</pubDate><description>
&lt;div id="version_1_70_0.known_issues"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Known Issues&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
These are patches from library authors which were found too late to be fixed
in the release. Be careful as they have not been through the normal testing
process.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix moved-from executor in idle ping timeout (&lt;a href="https://github.com/boostorg/beast/issues/1599"&gt;#1599&lt;/a&gt;)
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/patches/1_70_0/0001-beast-fix-moved-from-executor.patch"&gt;Beast
patch&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_70_0.new_libraries"&gt;
&lt;h3&gt;&lt;span class="link"&gt;New Libraries&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/outcome/"&gt;Outcome&lt;/a&gt;:&lt;/span&gt; A set of tools for reporting
and handling function failures in contexts where &lt;em&gt;directly&lt;/em&gt;
using C++ exception handling is unsuitable, from Niall Douglas.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/histogram/"&gt;Histogram&lt;/a&gt;:&lt;/span&gt; Fast and extensible
multi-dimensional histograms with convenient interface for C++14, from
Hans Dembinski.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_70_0.updated_libraries"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated Libraries&lt;/span&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/asio/"&gt;Asio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
This release includes a number of new features, bug fixes, performance
enhancements, and documentation improvements. Notable changes include:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added the ability to use custom I/O executors with I/O objects
(such as sockets).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;async_result&lt;/span&gt;&lt;/code&gt;
form with an &lt;code&gt;&lt;span class="identifier"&gt;initiate&lt;/span&gt;&lt;/code&gt;
static member function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the Coroutines TS support and promoted it to the &lt;code&gt;&lt;span class="identifier"&gt;asio&lt;/span&gt;&lt;/code&gt; namespace.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;DynamicBuffer_v2&lt;/span&gt;&lt;/code&gt;
concept which is CopyConstructible.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;async_compose&lt;/span&gt;&lt;/code&gt;
function that simplifies the implementation of user-defined
asynchronous operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a &lt;code&gt;&lt;span class="identifier"&gt;make_strand&lt;/span&gt;&lt;/code&gt;
helper function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Relaxed the completion condition type requirements to only
require move-constructibility rather than copy-constructibility.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a constructor for &lt;code&gt;&lt;span class="identifier"&gt;local&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_endpoint&lt;/span&gt;&lt;/code&gt;
that takes a &lt;code&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the noexcept qualifier to various functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_DISABLE_VISIBILITY&lt;/span&gt;&lt;/code&gt;
configuration &lt;code&gt;&lt;span class="preprocessor"&gt;#define&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled recycling of the memory used to type-erase a function
object with the polymorphic executor.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed receive operations to return the correct number of
bytes transferred when truncation (&lt;code&gt;&lt;span class="identifier"&gt;error&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;message_size&lt;/span&gt;&lt;/code&gt;)
occurs on a datagram-oriented socket.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed calculation of absolute timeout when the backend uses
&lt;code&gt;&lt;span class="identifier"&gt;pthread_cond_timedwait&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the range-based asynchronous connect operation to deduce
the &lt;code&gt;&lt;span class="identifier"&gt;EndpointSequence&lt;/span&gt;&lt;/code&gt;
iterator type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;buffer_sequence_begin&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;buffer_sequence_end&lt;/span&gt;&lt;/code&gt;
to prevent implicit conversion.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensured SSL handshake errors are propagated to the peer before
the local operation completes.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Suppressed the &lt;code&gt;&lt;span class="identifier"&gt;eof&lt;/span&gt;&lt;/code&gt;
error on SSL shutdown as it actually indicates success.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a fallback error code for when we OpenSSL produces an
&lt;code&gt;&lt;span class="identifier"&gt;SSL_ERROR_SYSCALL&lt;/span&gt;&lt;/code&gt;
result without an associated error.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed composed asynchronous read and write operations to
move buffer sequence objects.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a macOS-specific warning about the deprecation of &lt;code&gt;&lt;span class="identifier"&gt;OSMemoryBarrier&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compile errors that occur when using the composed read
and write operations with MSVC 11.0.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved &lt;code&gt;&lt;span class="identifier"&gt;dispatch&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;post&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;defer&lt;/span&gt;&lt;/code&gt; documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a Windows-specific memory leak that may occur when &lt;code&gt;&lt;span class="identifier"&gt;system_executor&lt;/span&gt;&lt;/code&gt; is used.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Consult the &lt;a href="https://www.boost.org/doc/libs/1_70_0/doc/html/boost_asio/history.html"&gt;Revision
History&lt;/a&gt; for further details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;strong&gt;BIG
Update!!!&lt;/strong&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Some APIs have changed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/quickref.html"&gt;reference&lt;/a&gt;
shows a star ★ next to each new item.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Beast needs your help!
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast"&gt;Tell
Us&lt;/a&gt; how you or your company use Beast
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Please &lt;a href="https://github.com/boostorg/beast/issues/new"&gt;report&lt;/a&gt;
any bugs, feature requests, or general feedback
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Join the &lt;a href="https://cppalliance.org/slack/"&gt;&lt;strong&gt;C++ Slack Workspace&lt;/strong&gt;&lt;/a&gt; for free
and chat with us in the #beast and #boost channels
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Don't forget to &lt;a href="https://github.com/boostorg/beast"&gt;star
the repository&lt;/a&gt; ⭐!
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
More tutorials, code like the pros!
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/asio_refresher.html"&gt;Networking
Refresher&lt;/a&gt; teaches you from the ground up.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/writing_composed_operations/echo.html"&gt;Asynchronous
Echo&lt;/a&gt; example
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/using_io/writing_composed_operations/detect_ssl.html"&gt;&lt;strong&gt;Detect SSL&lt;/strong&gt;&lt;/a&gt; composed operation
tutorial
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/libs/beast/example/websocket/server/chat-multi"&gt;websocket-chat-multi&lt;/a&gt;
threaded chat server with a JavaScript &lt;a href="https://www.boost.org/libs/beast/example/websocket/server/chat-multi/chat_client.html"&gt;browser
client&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__basic_stream.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;basic_stream&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__tcp_stream.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;tcp_stream&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; offer:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Timeouts: &lt;code&gt;&lt;span class="identifier"&gt;async_read_some&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;async_write_some&lt;/span&gt;&lt;/code&gt;
complete with &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__error.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;error&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;timeout&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; on expiration!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Traffic-shaping policies &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__simple_rate_policy.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;simple&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__unlimited_rate_policy.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;unlimited&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;, or a user-defined
&lt;a href="https://www.boost.org/libs/beast/doc/html/beast/concepts/RatePolicy.html"&gt;&lt;em&gt;RatePolicy&lt;/em&gt;&lt;/a&gt;!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Put the strand directly on the socket using &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1322r0.html"&gt;P1322R0&lt;/a&gt;,
no more &lt;code&gt;&lt;span class="identifier"&gt;bind_executor&lt;/span&gt;&lt;/code&gt;
at call sites!
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Base classes &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__async_base.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;async_base&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__stable_async_base.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;stable_async_base&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; and handle
all composed operation boilerplate for you.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/libs/beast/doc/html/beast/ref/boost__beast__ssl_stream.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;ssl_stream&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; provides a movable,
assignable SSL stream with a flat write optimization.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All asynchronous operations use Asio's &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;
for efficient integration with Coroutines TS.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;&lt;em&gt;faster compilation&lt;/em&gt;&lt;/strong&gt;,
define &lt;code&gt;&lt;span class="identifier"&gt;BOOST_BEAST_SEPARATE_COMPILATION&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="preprocessor"&gt;#include&lt;/span&gt; &lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;beast&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;src&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
in one of your .cpp files!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See the full &lt;a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html"&gt;Release
Notes&lt;/a&gt; for a complete list of changes.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/context/"&gt;Context&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/91"&gt;#91&lt;/a&gt;: cleanup of stack if creating ucontext fails
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/97"&gt;#97&lt;/a&gt;: add missing BOST_CONTEXT_DECL in stack_context
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/98"&gt;#98&lt;/a&gt;: fix jump_i386_sysv_macho writing garbage to the x87
control word
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/coroutine2/"&gt;Coroutine2&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/coroutine2/issues/28"&gt;#28&lt;/a&gt;: don't crash on pthread_cancel
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/dll/"&gt;DLL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New macro &lt;a href="https://www.boost.org/libs/dll/BOOST_DLL_USE_STD_FS.html"&gt;BOOST_DLL_USE_STD_FS&lt;/a&gt;.
Define it to &lt;code&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;/code&gt; to make
the Boost.DLL use C++17's &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;filesystem&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;system_error&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt; (&lt;a href="https://github.com/boostorg/dll/issues/21"&gt;#21&lt;/a&gt;). Note that
exception types change from &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;system&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;system_error&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;system_error&lt;/span&gt;&lt;/code&gt;, so make sure to update
&lt;code&gt;&lt;span class="keyword"&gt;catch&lt;/span&gt;&lt;/code&gt;es.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Significant rewrite of the dynamic loadable detection and decoration
logic. More precise errors are now reported in case of loading failures.
Added &lt;code&gt;&lt;span class="identifier"&gt;shared_library&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;decorate&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; function that returns a decorated
path to the library without doing any platform related queries and
detections. Prefer using &lt;code&gt;&lt;span class="identifier"&gt;shared_library&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;load&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;shared_library&lt;/span&gt;&lt;/code&gt;
constructors for better results (many thanks to Loïc Touraine for
the work &lt;a href="https://github.com/boostorg/dll/pull/23"&gt;PR#23&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
CI hardening, docs updates, typos fixes, cleanups and many portability
fixes.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/dynamic_bitset/"&gt;Dynamic Bitset&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Disabled hardware-assisted popcount (added in 1.69.0) on MSVC due
to undefined behavior on older CPUs. (&lt;a href="https://github.com/boostorg/dynamic_bitset/issues/33"&gt;#33&lt;/a&gt; &lt;a href="https://github.com/boostorg/dynamic_bitset/pull/35"&gt;PR#35&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/fiber/"&gt;Fiber&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/fiber/issues/191"&gt;#191&lt;/a&gt;: ignore unused argument warning
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/fiber/issues/196"&gt;#196&lt;/a&gt;: fix high contention on remote_ready_splk_
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/filesystem/"&gt;Filesystem&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a few instances of dereferencing &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;end&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; in &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
implementation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed program termination in case of out of memory condition in directory
iterators constructors and operations accepting a reference to &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;. (&lt;a href="https://github.com/boostorg/filesystem/issues/58"&gt;#58&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed possible linking errors caused by missing definitions of static
members of &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://svn.boost.org/trac/boost/ticket/12759"&gt;#12759&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed possible use of uninitialized data in directory iterator increment
operation on Linux.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for movability to directory iterators.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added file status query overloads for &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt;.
This avoids a relatively expensive OS query when file status is requested
for a result of dereferencing a directory iterator. (&lt;a href="https://github.com/boostorg/filesystem/pull/55"&gt;PR#55&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Reworked &lt;code&gt;&lt;span class="identifier"&gt;current_path&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;read_symlink&lt;/span&gt;&lt;/code&gt;
implementation to avoid possible memory exhaustion on broken or tampered
with filesystems. The functions now have an internal limit of the
path size they will accept from the OS, which is currently 16 MiB.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Increased the size of the internal buffer used by &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/integer/"&gt;Integer&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added Extended Euclidean Algorithm and Modular Multiplicative Inverse
function. (Nick Thompson, &lt;a href="https://github.com/boostorg/integer/pull/11"&gt;PR#11&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/log/"&gt;Log&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added support for generating another log file name before collecting
the file in the text file sink backend. This allows to combine
appending to an existing log file with timestamps and file
counters in log filenames, and, consequently, file collection
in general.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See &lt;a href="https://www.boost.org/libs/log/doc/html/log/changelog.html"&gt;changelog&lt;/a&gt;
for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Add Lanczos smoothing derivatives
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Move &lt;code&gt;&lt;span class="identifier"&gt;numerical_differentiation&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
from &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;/code&gt; to &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;math&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;differentiation&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;finite_difference&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add mean, variance, skewness, kurtosis, median, Gini coefficient,
and median absolute deviation to &lt;code&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;univariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add correlation coefficients and covariance to &lt;code&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;bivariate_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add absolute Gini coefficient, Hoyer sparsity, oracle SNR,
and the &lt;em&gt;M&lt;/em&gt;[sub 2]&lt;em&gt;M&lt;/em&gt;[sub
4] SNR estimator to &lt;code&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;signal_statistics&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add total variation, l0, l1, l2, and sup norms, as well as
corresponding distance functions to &lt;code&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;norms&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add move constructors for polynomials, support complex coefficients,
add &lt;code&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;prime&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;integrate&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
methods.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add &lt;code&gt;&lt;span class="identifier"&gt;quadratic_roots&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;tools&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;roots&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add support for complex-valued functions to Newton's method
in &lt;code&gt;&lt;span class="identifier"&gt;roots&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add Catmull-Rom interpolator.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/mp11/"&gt;Mp11&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Renamed &lt;code&gt;&lt;span class="identifier"&gt;mp_invoke&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;mp_invoke_q&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_similar&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_set_union&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_set_intersection&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_set_difference&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_not_fn&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_transform_first&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_transform_second&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_transform_third&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_filter&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_eval_if_not&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_eval_or&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_valid_q&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_back&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_pop_back&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multi_index/"&gt;Multi-index Containers&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;size_type&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;difference_type&lt;/span&gt;&lt;/code&gt; are now defined
as the allocator's same-named types. This will not make any difference
in the vast majority of cases, but allows for some degree of control
of resulting internal structures via user-defined allocator types
(see issue &lt;a href="https://github.com/boostorg/multi_index/issues/17"&gt;#17&lt;/a&gt; for motivation). For the moment being,
this change is not documented in the reference section (i.e., it
has semi-official status).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multiprecision/"&gt;Multiprecision&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix various conversion issues in the traits classes, check for compatibility
with Boost.Optional.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Prevent instantiation of &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;/code&gt;
on any old type when checking for convertibility. See &lt;a href="https://github.com/boostorg/multiprecision/issues/98"&gt;#98&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Update variable precision code to account for arbitrary precision
integers. See &lt;a href="https://github.com/boostorg/multiprecision/issues/103"&gt;#103&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add support for XML serialization archives.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix bug in fixed precision iostream formatting in &lt;code&gt;&lt;span class="identifier"&gt;mpf_float&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;mpfr_float&lt;/span&gt;&lt;/code&gt;. See
&lt;a href="https://github.com/boostorg/multiprecision/issues/113"&gt;#113&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add more overloads for special functions which are better handled
natively by MPFR.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bug in generic &lt;code&gt;&lt;span class="identifier"&gt;exp&lt;/span&gt;&lt;/code&gt;
implementation which could cause invariant failure.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed generic conversion from float to integer to avoid undefined
behaviour. See &lt;a href="https://github.com/boostorg/multiprecision/issues/110"&gt;#110&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/poly_collection/"&gt;PolyCollection&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improved handling of stateful allocators and allocator propagation
traits, after an error reported by Billy O'Neal (&lt;a href="https://github.com/boostorg/poly_collection/pull/9"&gt;PR#9&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a potentially serious bug with an internal cache structure.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/spirit/"&gt;Spirit&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Removed use of deprecated &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;detail&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;iterator&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
header. &lt;a href="https://github.com/boostorg/spirit/pull/432"&gt;PR#432&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
X3
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Integer parsers should now handle user defined types. &lt;a href="https://github.com/boostorg/spirit/pull/429"&gt;PR#429&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The &lt;code&gt;&lt;span class="identifier"&gt;check_overflow&lt;/span&gt;&lt;/code&gt;
trait default implementation now relies on &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_bounded&lt;/span&gt;&lt;/code&gt;
instead of &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;integer_traits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_integral&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed sequence into plain parsing. Now it triggers a compile
time error instead of silently parsing the the sequence and
taking the last value as a result. &lt;a href="https://github.com/boostorg/spirit/pull/439"&gt;PR#439&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;parse_rule&lt;/span&gt;&lt;/code&gt;
instantiation with &lt;code&gt;&lt;span class="identifier"&gt;BOOST_SPIRIT_INSTANTIATE&lt;/span&gt;&lt;/code&gt;
when:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
A rule has no attribute. &lt;a href="https://github.com/boostorg/spirit/pull/455"&gt;PR#455&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
An actual attribute is not of type a rule was declared
with. &lt;a href="https://github.com/boostorg/spirit/pull/456"&gt;PR#456&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/issues/457"&gt;#457&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
A &lt;strong&gt;huge&lt;/strong&gt; thanks goes out to
&lt;a href="https://github.com/Xeverous"&gt;Xeverous&lt;/a&gt; for
reporting a regression in &lt;a href="https://github.com/boostorg/spirit/issues/453"&gt;#453&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed unneded attribute synthesization and no-transformation
attribute reference pass-through in rules. &lt;a href="https://github.com/boostorg/spirit/issues/444"&gt;#444&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/pull/449"&gt;PR#449&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/pull/452"&gt;PR#452&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed broken 1.0#INF parser. It was poorly documented and
never worked. &lt;a href="https://github.com/boostorg/spirit/issues/415"&gt;#415&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/pull/458"&gt;PR#458&lt;/a&gt; &lt;a href="https://svn.boost.org/trac/boost/ticket/8699"&gt;#8699&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The undocumented &lt;code&gt;&lt;span class="identifier"&gt;make_attribute&lt;/span&gt;&lt;/code&gt;
trait was removed due to bugs &lt;a href="https://github.com/boostorg/spirit/pull/449"&gt;PR#449&lt;/a&gt;
and to simplify
attribute transformation. &lt;a href="https://github.com/boostorg/spirit/pull/460"&gt;PR#460&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
If you were using it to workaround bugs in attribute transformation
- they should not be needed anymore as of this release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The integer value parser now respects &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;digits10&lt;/span&gt;&lt;/code&gt;
value. &lt;a href="https://github.com/boostorg/spirit/pull/469"&gt;PR#469&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed underflow check for a &lt;code&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;Min&lt;/span&gt; &lt;span class="special"&gt;%&lt;/span&gt;
&lt;span class="identifier"&gt;Base&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;
&lt;span class="special"&gt;==&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;/code&gt;
corner case. &lt;a href="https://github.com/boostorg/spirit/pull/469"&gt;PR#469&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an output value on overflow of IgnoreOverflowDigits=true
integer parser. &lt;a href="https://github.com/boostorg/spirit/pull/470"&gt;PR#470&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Container attribute elements were copyied, but not moved. &lt;a href="https://github.com/boostorg/spirit/pull/472"&gt;PR#472&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Special handling of references in &lt;code&gt;&lt;span class="identifier"&gt;transform_attribute&lt;/span&gt;&lt;/code&gt;
was removed. &lt;a href="https://github.com/boostorg/spirit/pull/480"&gt;PR#480&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
V2
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Macro name collisions and namespace conflicts with Boost.Endian
were fixed. &lt;a href="https://github.com/boostorg/spirit/pull/349"&gt;PR#349&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/pull/482"&gt;PR#482&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
utree
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed UB in tag getter due to left shift of negative
value. &lt;a href="https://github.com/boostorg/spirit/pull/423"&gt;PR#423&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed double-conversion (&lt;code&gt;&lt;span class="identifier"&gt;spirit&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string&lt;/span&gt;
&lt;span class="special"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string&lt;/span&gt;
&lt;span class="special"&gt;-&amp;gt;&lt;/span&gt; &lt;span class="identifier"&gt;spirit&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string&lt;/span&gt;&lt;/code&gt;).
&lt;a href="https://github.com/boostorg/spirit/pull/462"&gt;PR#462&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Qi
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added static asserts for rule skipper type problems.
&lt;a href="https://github.com/boostorg/spirit/pull/427"&gt;PR#427&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;check_overflow&lt;/span&gt;&lt;/code&gt;
trait default implementation now relies on &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_bounded&lt;/span&gt;&lt;/code&gt; instead
of &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;integer_traits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_integral&lt;/span&gt;&lt;/code&gt;
&lt;a href="https://github.com/boostorg/spirit/pull/429"&gt;PR#429&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Integer parsers should now handle user defined types.
&lt;a href="https://github.com/boostorg/spirit/pull/429"&gt;PR#429&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Note:&lt;/strong&gt; The &lt;code&gt;&lt;span class="identifier"&gt;check_overflow&lt;/span&gt;&lt;/code&gt; trait
default implementation now relies on &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_bounded&lt;/span&gt;&lt;/code&gt;
instead of &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;integer_traits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;is_integral&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed broken 1.0#INF parser. It was poorly documented
and never worked. &lt;a href="https://github.com/boostorg/spirit/issues/415"&gt;#415&lt;/a&gt; &lt;a href="https://github.com/boostorg/spirit/pull/458"&gt;PR#458&lt;/a&gt; &lt;a href="https://svn.boost.org/trac/boost/ticket/8699"&gt;#8699&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The undocumented &lt;code&gt;&lt;span class="identifier"&gt;make_attribute&lt;/span&gt;&lt;/code&gt;
trait was merged into &lt;code&gt;&lt;span class="identifier"&gt;transform_attribute&lt;/span&gt;&lt;/code&gt;
trait. &lt;a href="https://github.com/boostorg/spirit/pull/471"&gt;PR#471&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;pre_transform&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;post_transform&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;fail_transform&lt;/span&gt;&lt;/code&gt;
utility functions were removed in favor of directly using
&lt;code&gt;&lt;span class="identifier"&gt;pre&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;post&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;fail&lt;/span&gt;&lt;/code&gt; of the transform
trait. &lt;a href="https://github.com/boostorg/spirit/pull/467"&gt;PR#467&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The integer value parser now respects &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;numeric_limits&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;digits10&lt;/span&gt;&lt;/code&gt;
value. &lt;a href="https://github.com/boostorg/spirit/pull/469"&gt;PR#469&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed underflow check for a &lt;code&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;Min&lt;/span&gt; &lt;span class="special"&gt;%&lt;/span&gt;
&lt;span class="identifier"&gt;Base&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;
&lt;span class="special"&gt;==&lt;/span&gt; &lt;span class="number"&gt;0&lt;/span&gt;&lt;/code&gt;
corner case. &lt;a href="https://github.com/boostorg/spirit/pull/469"&gt;PR#469&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an output value on overflow of IgnoreOverflowDigits=true
integer parser. &lt;a href="https://github.com/boostorg/spirit/pull/470"&gt;PR#470&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Special handling of references in &lt;code&gt;&lt;span class="identifier"&gt;transform_attribute&lt;/span&gt;&lt;/code&gt;
was removed. &lt;a href="https://github.com/boostorg/spirit/pull/480"&gt;PR#480&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Lex
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed UB in default constructor of lexer with user specified
token type. &lt;a href="https://github.com/boostorg/spirit/pull/420"&gt;PR#420&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Classic:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;position_iterator&lt;/span&gt;&lt;/code&gt;
forming reference to local when the underlying iterator dereference
operator returns a non-reference type. &lt;a href="https://github.com/boostorg/spirit/pull/422"&gt;PR#422&lt;/a&gt; &lt;a href="https://svn.boost.org/trac/boost/ticket/9737"&gt;#9737&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/stacktrace/"&gt;Stacktrace&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Build fix for iOS 32-bit ARM (many thanks to Ivan Ponomarev for providing
the fix &lt;a href="https://github.com/boostorg/stacktrace/pull/70"&gt;PR#70&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed multiple typos, warnings and updated the docs.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.test v3.10 see the &lt;a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html"&gt;Changes
log&lt;/a&gt; for more details.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Breaking changes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Test &lt;code&gt;&lt;span class="identifier"&gt;minimal&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
is now showing a deprecation warning,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Change in floating point comparison may fail tests that were
silently not using the floating point comparison logic prior
to this release,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Internal API change to &lt;code&gt;&lt;span class="identifier"&gt;unit_test_log_formatter&lt;/span&gt;&lt;/code&gt;,
see detailed change log,
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New feature:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Floating point comparison has been extended to capture non-floating
point and arithmetic operands: expressions like &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TEST&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="number"&gt;3.0001&lt;/span&gt; &lt;span class="special"&gt;==&lt;/span&gt;
&lt;span class="number"&gt;3&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;
now use floating point support of Boost.Test,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Custom datasets are not required to declare the &lt;code&gt;&lt;span class="identifier"&gt;sample&lt;/span&gt;&lt;/code&gt; type field anymore,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Extending template test cases from &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;tuple&lt;/span&gt;&lt;/code&gt;
to any variadic definition,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows support for timed tests,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Timed test on test-suites,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed dependency to Boost.Timer,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TEST_INFO_SCOPE&lt;/span&gt;&lt;/code&gt;
for scoped context declaration,
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TEST_CONTEXT&lt;/span&gt;&lt;/code&gt;
syntax
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes and pull requests:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Trac tickets: &lt;a href="https://svn.boost.org/trac/boost/ticket/7397"&gt;#7397&lt;/a&gt;, &lt;a href="https://svn.boost.org/trac/boost/ticket/9434"&gt;#9434&lt;/a&gt;, &lt;a href="https://svn.boost.org/trac/boost/ticket/13106"&gt;#13106&lt;/a&gt;, &lt;a href="https://svn.boost.org/trac/boost/ticket/13418"&gt;#13418&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Issues: &lt;a href="https://github.com/boostorg/test/issues/133"&gt;#133&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/138"&gt;#138&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/141"&gt;#141&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/157"&gt;#157&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/issues/160"&gt;#160&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/174"&gt;#174&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/176"&gt;#176&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/177"&gt;#177&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/180"&gt;#180&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/issues/181"&gt;#181&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/194"&gt;#194&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/196"&gt;#196&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/198"&gt;#198&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/199"&gt;#199&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/issues/202"&gt;#202&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/203"&gt;#203&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/204"&gt;#204&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GitHub Pull Requests: &lt;a href="https://github.com/boostorg/test/pull/171"&gt;PR#171&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/172"&gt;PR#172&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/182"&gt;PR#182&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/pull/183"&gt;PR#183&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/184"&gt;PR#184&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/190"&gt;PR#190&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/195"&gt;PR#195&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/pull/195"&gt;PR#195&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/197"&gt;PR#197&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/205"&gt;PR#205&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/type_index/"&gt;TypeIndex&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for the GHS C++ compiler added (many thanks to Brandon Castellano
for providing the patch &lt;a href="https://github.com/boostorg/type_index/pull/28"&gt;PR#28&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimized string and type comparisons (many thanks to Andrey Semashev
for providing the patch &lt;a href="https://github.com/boostorg/type_index/pull/23"&gt;PR#23&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed clang-win compilation (many thanks to Peter Dimov for providing
the patch &lt;a href="https://github.com/boostorg/type_index/pull/25"&gt;PR#25&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
CI hardening.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/type_traits/"&gt;TypeTraits&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added is_bounded_array and is_unbounded_array (Glen Fernandes).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added copy_reference and copy_cv_ref (Glen Fernandes).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for msvc with /clr option.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Misc compiler compatibility fixes.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/variant/"&gt;Variant&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Many cleanups and internal improvements, many thanks to Nikita Kniazev
(&lt;a href="https://github.com/boostorg/variant/pull/55"&gt;PR#55&lt;/a&gt;, &lt;a href="https://github.com/boostorg/variant/pull/56"&gt;PR#56&lt;/a&gt;, &lt;a href="https://github.com/boostorg/variant/pull/57"&gt;PR#57&lt;/a&gt;) and Louis Dionne
(&lt;a href="https://github.com/boostorg/variant/pull/51"&gt;PR#51&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
CI hardening.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/numeric/ublas/"&gt;uBlas&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Addition of tensor framework (many thanks to Cem Bassoy &lt;a href="https://github.com/boostorg/ublas/pull/65"&gt;PR#65&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Addition of basic OpenCL support (many thanks to Fady Essam &lt;a href="https://github.com/boostorg/ublas/pull/59"&gt;PR#59&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Integration of basic benchmark suite (many thanks to Stefan Seefeld
&lt;a href="https://github.com/boostorg/ublas/pull/57"&gt;PR#57&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
CI integration and hardening
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_70_0.compilers_tested"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Compilers Tested&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Boost's primary test compilers are:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 4.0.1, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
Boost's additional test compilers include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Linux:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++0x: 3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.4.7
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Intel, C++14: 18.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
OS X:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 9.1.0, 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++1z: 9.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++2a: 10.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Windows:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++0x: 4.6.4
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
FreeBSD:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Clang: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++1z: 4.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_70_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Daniel James, Vladimir Prus, Marshall Clow and Michael Caisse managed this
release.
&lt;/p&gt;
&lt;/div&gt;
</description></item>
</channel>
</rss>