2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-26 19:12:15 +00:00
Files
website/generated/dev.rss
2020-10-07 14:53:57 -04:00

8411 lines
419 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>Release notes for work in progress boost</title>
<link>https://www.boost.org/</link>
<atom:link href="https://www.boost.org/generated/dev.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.74.0</title><link>https://www.boost.org/users/history/version_1_74_0.html</link><guid>https://www.boost.org/users/history/version_1_74_0.html</guid><pubDate>Fri, 14 Aug 2020 05:02:54 +0000</pubDate><description>
&lt;div id="version_1_74_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/stl_interfaces/"&gt;STLInterfaces&lt;/a&gt;:&lt;/span&gt; A library
of CRTP bases to ease the writing of STL views, iterators, and sequence
containers, from Zach Laine.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_74_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;
Added an implementation of the proposed standard executors (&lt;a href="http://wg21.link/P0443r13"&gt;P0443r13&lt;/a&gt;, &lt;a href="http://wg21.link/P1348r0"&gt;P1348r0&lt;/a&gt;,
and &lt;a href="http://wg21.link/P1393r0"&gt;P1393r0&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for the proposed standard executors to Asio's I/O facilities.
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The supplied executors now meet the requirements for the proposed
standard executors. These classes also continue to meet the
existing requirements for the Networking TS model of executors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All I/O objects, asynchronous operations, and utilities will
interoperate with both new proposed standard executors, and
with existing Networking TS executors.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;any_io_executor&lt;/span&gt;&lt;/code&gt;
type alias has been introduced as the default runtime-polymorphic
executor for all I/O objects. This defaults to the &lt;code&gt;&lt;span class="identifier"&gt;execution&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;any_executor&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
template. If required for backward compatibility, &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT&lt;/span&gt;&lt;/code&gt;
can be defined to use the old &lt;code&gt;&lt;span class="identifier"&gt;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;executor&lt;/span&gt;&lt;/code&gt;
polymorphic wrapper instead.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for the existing Networking TS model of executors can
be disabled by defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_NO_TS_EXECUTORS&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;
Added converting move construction and assignment to &lt;code&gt;&lt;span class="identifier"&gt;basic_waitable_timer&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled C++20 coroutine support when using &lt;tt&gt;gcc&lt;/tt&gt;
10.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added overloads of &lt;code&gt;&lt;span class="identifier"&gt;co_spawn&lt;/span&gt;&lt;/code&gt;
that launch an awaitable.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new constructor overload to &lt;code&gt;&lt;span class="identifier"&gt;use_awaitable_t&lt;/span&gt;&lt;/code&gt;'s
default executor adapter, to enable conversion between executor types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for using &lt;code&gt;&lt;span class="identifier"&gt;detached_t&lt;/span&gt;&lt;/code&gt;
as a default completion token, by adding members &lt;code&gt;&lt;span class="identifier"&gt;as_default_on&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;as_default_on_t&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;li&gt;
&lt;div&gt;
Added a move constructor to &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;stream&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;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;stream&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
write operations to linearise gather-write buffer sequences.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added compile-time detection of the deprecated &lt;code&gt;&lt;span class="identifier"&gt;asio_handler_invoke&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;asio_handler_allocate&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;asio_handler_deallocate&lt;/span&gt;&lt;/code&gt;
hooks, when &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_NO_DEPRECATED&lt;/span&gt;&lt;/code&gt;
is defined.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implemented a number of performance optimisations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added source location support to handler tracking.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implemented various improvements to the &lt;tt&gt;handlerviz.pl&lt;/tt&gt;
tool.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;tt&gt;handlerlive.pl&lt;/tt&gt; tool, which processes
handler tracking output to produce a list of "live" handlers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;tt&gt;handlertree.pl&lt;/tt&gt; tool, which filters handler
tracking output to include only those events in the tree that produced
the nominated handlers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added changes for clang-based Embarcadero C++ compilers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a deadlock that can occur when multiple threads concurrently
initialise the Windows I/O completion port backend.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;async_compose&lt;/span&gt;&lt;/code&gt;
to work with copyable handlers when passed by lvalue.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed completion signature deduction in &lt;code&gt;&lt;span class="identifier"&gt;co_spawn&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed a spurious &lt;code&gt;&lt;span class="identifier"&gt;Executor&lt;/span&gt;&lt;/code&gt;
base class from the &lt;code&gt;&lt;span class="identifier"&gt;executor_binder&lt;/span&gt;&lt;/code&gt;
implementation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes and improvements in the documentation and examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Consult the &lt;a href="https://www.boost.org/doc/libs/1_74_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 missing &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;/code&gt;
qualifiers to some operations in &lt;code&gt;&lt;span class="identifier"&gt;atomic_ref&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="identifier"&gt;yield&lt;/span&gt;&lt;/code&gt;
instruction on ARMv8-A. The instruction is used internally in spin
loops to reduce CPU power consumption.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for C++20 &lt;a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_wait_notify_ops"&gt;waiting
and notifying operations&lt;/a&gt;. The implementation includes generic
backend that involves the internal lock pool, as well as specialized
backends for Windows, Linux, FreeBSD, DragonFly BSD and NetBSD. Atomic
types provide a new method &lt;code&gt;&lt;span class="identifier"&gt;has_native_wait_notify&lt;/span&gt;&lt;/code&gt;,
a static boolean constant &lt;code&gt;&lt;span class="identifier"&gt;always_has_native_wait_notify&lt;/span&gt;&lt;/code&gt;
and a set of capability macros that allow to detect if the implementation
supports native waiting and notifying operations for a given type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed internal representation of &lt;code&gt;&lt;span class="identifier"&gt;atomic_flag&lt;/span&gt;&lt;/code&gt;
to use 32-bit storage. This allows for more efficient waiting and
notifying operations on &lt;code&gt;&lt;span class="identifier"&gt;atomic_flag&lt;/span&gt;&lt;/code&gt;
on some platforms.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for build-time configuration of the internal lock pool
size. The user can define the &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATOMIC_LOCK_POOL_SIZE_LOG2&lt;/span&gt;&lt;/code&gt;
macro to specify binary logarithm of the size of the lock pool. The
default value is 8, meaning that the size of the lock pool is 256,
up from 64 used in the previous release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for a new set of atomic types dedicated for &lt;a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_ipc"&gt;inter-process
communication&lt;/a&gt;: &lt;code&gt;&lt;span class="identifier"&gt;ipc_atomic_flag&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;ipc_atomic&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;ipc_atomic_ref&lt;/span&gt;&lt;/code&gt;. Users are recommended
to port their code using non-IPC types for inter-process communication
to the new types. The new types provide the same set of operations
as their non-IPC counterparts, with the following differences:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Most operations have an added precondition that &lt;code&gt;&lt;span class="identifier"&gt;is_lock_free&lt;/span&gt;&lt;/code&gt; returns &lt;code&gt;&lt;span class="keyword"&gt;true&lt;/span&gt;&lt;/code&gt; for the given atomic object.
The library will issue a compile time error if this precondition
is known to be not satisfied at compile time.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All provided operations are address-free, meaning that the
atomic object (in case of &lt;code&gt;&lt;span class="identifier"&gt;ipc_atomic_ref&lt;/span&gt;&lt;/code&gt;
- the referenced object) may be located in process-shared memory
or mapped into the same process at multiple different addresses.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The new &lt;code&gt;&lt;span class="identifier"&gt;has_native_wait_notify&lt;/span&gt;&lt;/code&gt;
operation and &lt;code&gt;&lt;span class="identifier"&gt;always_has_native_wait_notify&lt;/span&gt;&lt;/code&gt;
constant indicate support for native inter-process waiting
and notifying operations. When that support is not present,
the operations are implemented with a busy loop, which is less
efficient, but still is address-free. A separate set of capability
macros is also provided to indicate this support.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added new &lt;code&gt;&lt;span class="identifier"&gt;atomic_unsigned_lock_free&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;atomic_signed_lock_free&lt;/span&gt;&lt;/code&gt;
types introduced in C++20. The types indicate the atomic object type
for an unsigned or signed integer, respectively, that is lock-free
and preferably has native support for waiting and notifying operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added new gcc assembler backends for ARMv8-A (for both AArch32 and
AArch64). The new backends are used to implement operations not supported
by compiler intrinsics (including 128-bit operations on AArch64)
and can also be used when compiler intrinsics are not available.
Both little and big endian targets are supported. AArch64 backend
supports extensions defined in ARMv8.1 and ARMv8.3.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for big endian targets in the legacy ARM backend based
on gcc assembler blocks (this backend is used on ARMv7 and older
targets). Previously, the backend assumed little endian memory layout,
which is significant for 64-bit operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved performance of seq_cst stores and thread fences on x86 by
using &lt;code&gt;&lt;span class="identifier"&gt;lock&lt;/span&gt;&lt;/code&gt;-prefixed
instructions instead of &lt;code&gt;&lt;span class="identifier"&gt;mfence&lt;/span&gt;&lt;/code&gt;.
This means that the operations no longer affect non-temporal stores,
which was also not guaranteed before. Use specialized instructions
and intrinsics to order non-temporal memory accesses.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed capability macros for 80-bit &lt;code&gt;&lt;span class="keyword"&gt;long&lt;/span&gt;
&lt;span class="keyword"&gt;double&lt;/span&gt;&lt;/code&gt; on x86 targets not
indicating lock-free operations even if 128-bit atomic operations
were available.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compilation of gcc asm blocks on Alpha targets.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In the gcc &lt;code&gt;&lt;span class="identifier"&gt;__sync&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; intrinsics backend, fixed that store
and load operations of large objects (larger than a pointer size)
could be non-atomic. The implementation currently assumes that small
objects can be stored with a single instruction atomically on all
modern architectures.
&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 update brings bug fixes and support for the following changes
changes in Boost.Asio:
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Beast supports &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_NO_DEPRECATED&lt;/span&gt;&lt;/code&gt;.
Define this to help identify areas of your Beast and Asio code which
use deprecated Asio interfaces.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Beast also supports &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_NO_TS_EXECUTORS&lt;/span&gt;&lt;/code&gt;.
Define this to identify uses of executors from the now potentially
outdated &lt;a href="https://cplusplus.github.io/networking-ts/draft.pdf"&gt;Networking
TS&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Asio will use the &lt;a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r11.html"&gt;Standard
Executors&lt;/a&gt; model by default. You can prevent this behaviour
by defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT&lt;/span&gt;&lt;/code&gt;
in which the Networking TS model will be used by default. Setting
this flag does not prevent a program from using executors from the
Standard Executors model explicitly.
&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/bimap/"&gt;Bimap&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct allocator usage (fixes C++20 compilation). (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/config/"&gt;Config&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implement &lt;code&gt;&lt;span class="identifier"&gt;BOOST_NO_CXX11_OVERRIDE&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;BOOST_OVERRIDE&lt;/span&gt;&lt;/code&gt;.
(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/core/"&gt;Core&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implemented the allocator access utilities which provide a replacement
for &lt;code&gt;&lt;span class="identifier"&gt;allocator_traits&lt;/span&gt;&lt;/code&gt;
with individual traits and functions for each facility. They support
the C++11 allocator model when possible and provide a fallback for
C++98 compatibility. These are now used in Circular_Buffer, Wave,
Lockfree, Heap, Smart_Ptr, Dynamic_Bitset, Format, Bimap and more.
(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/dll/"&gt;DLL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Multiple fixes for the &lt;code&gt;&lt;span class="identifier"&gt;library_info&lt;/span&gt;&lt;/code&gt;
work on empty shared objects.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Compilation fixes for C++98 and C++11 modes (&lt;a href="https://github.com/boostorg/dll/issues/28"&gt;#28&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes for &lt;code&gt;&lt;span class="identifier"&gt;smart_library&lt;/span&gt;&lt;/code&gt;
manglings (thanks to XiaLiChao82 &lt;a href="https://github.com/boostorg/dll/issues/37"&gt;#37&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;
Enabled scoped enumeration types in &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled &lt;code&gt;&lt;span class="keyword"&gt;bool&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="keyword"&gt;enum&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="keyword"&gt;float&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="keyword"&gt;double&lt;/span&gt;&lt;/code&gt; in &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse_inplace&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added an overload of &lt;code&gt;&lt;span class="identifier"&gt;endian_reverse_inplace&lt;/span&gt;&lt;/code&gt;
for arrays.
&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;
Removed compile-time checks for support for symlinks and hardlink
on Windows. Instead, a runtime check is used. (&lt;a href="https://github.com/boostorg/filesystem/pull/142"&gt;PR#142&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed handling of reparse points in &lt;code&gt;&lt;span class="identifier"&gt;canonical&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;read_symlink&lt;/span&gt;&lt;/code&gt;
on Windows. This also affects other algorithms that involve &lt;code&gt;&lt;span class="identifier"&gt;canonical&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;read_symlink&lt;/span&gt;&lt;/code&gt;
in their implementation. (&lt;a href="https://github.com/boostorg/filesystem/pull/100"&gt;PR#100&lt;/a&gt;, &lt;a href="https://github.com/boostorg/filesystem/issues/85"&gt;#85&lt;/a&gt;, &lt;a href="https://github.com/boostorg/filesystem/issues/99"&gt;#99&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/filesystem/issues/123"&gt;#123&lt;/a&gt;, &lt;a href="https://github.com/boostorg/filesystem/issues/125"&gt;#125&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed that &lt;code&gt;&lt;span class="identifier"&gt;read_symlink&lt;/span&gt;&lt;/code&gt;
on Windows could potentially fail or cause failures elsewhere with
a sharing violation error, if the same symlink was opened concurrently.
(&lt;a href="https://github.com/boostorg/filesystem/issues/138"&gt;#138&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed that &lt;code&gt;&lt;span class="identifier"&gt;is_symlink&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; would always return &lt;code&gt;&lt;span class="keyword"&gt;false&lt;/span&gt;&lt;/code&gt;, even if the directory entry
actually referred to a symlink. (&lt;a href="https://github.com/boostorg/filesystem/pull/148"&gt;PR#148&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added missing status inspection operation overloads for &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt; (e.g. &lt;code&gt;&lt;span class="identifier"&gt;is_directory&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;directory_entry&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;amp;)&lt;/span&gt;&lt;/code&gt;).
Removed incorrect &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt;
specifications for the overloads not taking the &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
arguments.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt; implementation
has been updated to perform checks on the source and target files,
as required by C++20 ([fs.op.copy.file]/4.1). In particular, the
operation will fail if the source or target file is not a regular
file or the source and target paths identify the same file.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt; on POSIX
systems will now also copy the source file permissions to the target
file, if the target file is overwritten.
&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;copy_file&lt;/span&gt;&lt;/code&gt;
implementations based on &lt;code&gt;&lt;span class="identifier"&gt;sendfile&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;copy_file_range&lt;/span&gt;&lt;/code&gt;
system calls on Linux, which may improve file copying performance,
especially on network filesystems.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; The &lt;code&gt;&lt;span class="identifier"&gt;copy_option&lt;/span&gt;&lt;/code&gt;
enumeration that is used with the &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
operation is deprecated. As a replacement, the new enum &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;/code&gt; (note the trailing
's') has been added. The new enum contains values similar to the
&lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;/code&gt; enum
from C++20. The old enum values are mapped onto the new enum. The
old enum will be removed in a future release.
&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;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;skip_existing&lt;/span&gt;&lt;/code&gt;
option, which allows &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
operation to succeed without overwriting the target file, if it exists.
&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;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;update_existing&lt;/span&gt;&lt;/code&gt;
option, which allows &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
operation to conditionally overwrite the target file, if it exists,
if its last write time is older than that of the replacement file.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
now returns &lt;code&gt;&lt;span class="keyword"&gt;bool&lt;/span&gt;&lt;/code&gt;, which
indicates whether the file was copied.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New, breaking change:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;/code&gt; operation has been extended
and reworked to implement behavior specified in C++20 [fs.op.copy].
This includes support for &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;recursive&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;copy_symlinks&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;skip_symlinks&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;directories_only&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;create_symlinks&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;create_hard_links&lt;/span&gt;&lt;/code&gt; options. The
operation performs additional checks based on the specified options.
Applying &lt;code&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;/code&gt; to
a directory with default &lt;code&gt;&lt;span class="identifier"&gt;copy_options&lt;/span&gt;&lt;/code&gt;
will now also copy files residing in that directory (but not nested
directories or files in those directories).
&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;create_directory&lt;/span&gt;&lt;/code&gt;
overload taking two paths. The second path is a path to an existing
directory, which is used as a source of permission attributes to
use in the directory to create.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;copy_directory&lt;/span&gt;&lt;/code&gt;
operation has been deprecated in favor of the new &lt;code&gt;&lt;span class="identifier"&gt;create_directory&lt;/span&gt;&lt;/code&gt;
overload. Note that the two operations have reversed order of the
path arguments.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;equivalent&lt;/span&gt;&lt;/code&gt; on POSIX
systems now returns the actual error code from the OS if one of the
paths does not resolve to a file. Previously the function would return
an error code of 1. (&lt;a href="https://github.com/boostorg/filesystem/issues/141"&gt;#141&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;equivalent&lt;/span&gt;&lt;/code&gt; no longer
considers file size and last modification time in order to test whether
the two paths refer to the same file. These checks could result in
a false negative if the file was modified during the &lt;code&gt;&lt;span class="identifier"&gt;equivalent&lt;/span&gt;&lt;/code&gt; call.
&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;absolute&lt;/span&gt;&lt;/code&gt;
overloads taking &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
argument.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Operations that have &lt;code&gt;&lt;span class="identifier"&gt;current_path&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; as the default value of their arguments
and also have an &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
argument will use the &lt;code&gt;&lt;span class="identifier"&gt;current_path&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;amp;&lt;/span&gt; &lt;span class="identifier"&gt;ec&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; overload to obtain the current path,
so that its failure is reported via the &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
argument instead of an exception.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;space&lt;/span&gt;&lt;/code&gt; now initializes
the &lt;code&gt;&lt;span class="identifier"&gt;space_info&lt;/span&gt;&lt;/code&gt; structure
members to -1 values on error, as required by C++20 ([fs.op.space]/1).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;space&lt;/span&gt;&lt;/code&gt; on Windows
now accepts paths referring to arbitrary files, not only directories.
This is similar to POSIX systems and corresponds to the operation
description in C++20. (&lt;a href="https://github.com/boostorg/filesystem/issues/73"&gt;#73&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Added implementation of &lt;code&gt;&lt;span class="identifier"&gt;temp_directory_path&lt;/span&gt;&lt;/code&gt; for Windows
CE. (&lt;a href="https://github.com/boostorg/filesystem/pull/25"&gt;PR#25&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Improved compatibility with
&lt;a href="https://wasi.dev/"&gt;WASI&lt;/a&gt; platform. (&lt;a href="https://github.com/boostorg/filesystem/pull/144"&gt;PR#144&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Improved support for Embarcadero
compilers. (&lt;a href="https://github.com/boostorg/filesystem/pull/130"&gt;PR#130&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;New:&lt;/strong&gt; Added implementations of &lt;code&gt;&lt;span class="identifier"&gt;unique_path&lt;/span&gt;&lt;/code&gt; operation based on
&lt;code&gt;&lt;span class="identifier"&gt;getrandom&lt;/span&gt;&lt;/code&gt; (Linux),
&lt;code&gt;&lt;span class="identifier"&gt;arc4random_buf&lt;/span&gt;&lt;/code&gt; (OpenBSD/FreeBSD/CloudABI)
and BCrypt (Windows) system APIs.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; Auto-linking against
system libraries on Windows with MSVC-compatible compilers is deprecated
and will be removed in a future release. This affects users linking
against static library of Boost.Filesystem. Users are advised to
update their project build systems to either use a shared library
of Boost.Filesystem, or explicitly specify the dependencies of Boost.Filesystem
in the linker command line. Users of shared library of Boost.Filesystem
are not affected.
&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/format/"&gt;Format&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct allocator usage (fixes C++20 compilation). (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/geometry/"&gt;Geometry&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/720"&gt;PR#720&lt;/a&gt; Additional R-tree constructors (thanks to
Caian Benedicto).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various improvements in buffer, set and relational operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Solved issues
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/709"&gt;#709&lt;/a&gt; memcpy called for object with no trivial copy-assignment.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/721"&gt;#721&lt;/a&gt; Compilation error in bgi::detail::rtree::visitors::insert.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/727"&gt;#727&lt;/a&gt; MSVC warning: conditional expression is constant.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bugfixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/700"&gt;PR#700&lt;/a&gt; Missing cases for default strategies in distance
algorithm.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/738"&gt;PR#738&lt;/a&gt; Longitudes out of range in direct geodesic
formulas.
&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;
Added new constructor initializing &lt;code&gt;&lt;span class="identifier"&gt;any_image&lt;/span&gt;&lt;/code&gt;
from r-value reference to any image (&lt;a href="https://github.com/boostorg/gil/pull/486"&gt;PR#486&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implemented mechanism to reverse &lt;code&gt;&lt;span class="identifier"&gt;kernel_2d&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/gil/pull/489"&gt;PR#489&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;
BREAKING: Replace Boost.Variant with Boost.Variant2 (&lt;a href="https://github.com/boostorg/gil/pull/474"&gt;PR#474&lt;/a&gt;)
which completes removal on uses of Boost.MPL (missing from
Boost 1.72.0 change added &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;
Use perfect forwarding from apply_operation to visit (&lt;a href="https://github.com/boostorg/gil/pull/491"&gt;PR#491&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;
BREAKING: Removed dependency on Boost.Variant
&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;
Fixed invalid conversion from RGB8 to CMYK32 due to overflow
(&lt;a href="https://github.com/boostorg/gil/pull/470"&gt;PR#470&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;image&lt;/span&gt;&lt;/code&gt;
constructor from other image (&lt;a href="https://github.com/boostorg/gil/pull/477"&gt;PR#477&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed error &lt;code&gt;&lt;span class="identifier"&gt;plane_view_t&lt;/span&gt;&lt;/code&gt;
is not a class or namespace name (&lt;a href="https://github.com/boostorg/gil/pull/481"&gt;PR#481&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;interleaved_view&lt;/span&gt;&lt;/code&gt;
factory using &lt;code&gt;&lt;span class="identifier"&gt;point&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&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;ptrdiff_t&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; for dimension (&lt;a href="https://github.com/boostorg/gil/pull/487"&gt;PR#487&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed documentation replacing uses MPL with MP11 in tutorial
(&lt;a href="https://github.com/boostorg/gil/pull/494"&gt;PR#494&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed missing header in &lt;code&gt;&lt;span class="identifier"&gt;numeric&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;kernel&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
to make it self-contained (&lt;a href="https://github.com/boostorg/gil/pull/502"&gt;PR#502&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Acknowledgements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Samuel Debionne, Pranam Lashkari, Mateusz Loskot, Debabrata
Mandal
&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/heap/"&gt;Heap&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct destruction of top node in &lt;code&gt;&lt;span class="identifier"&gt;skew_heap&lt;/span&gt;&lt;/code&gt;.
(Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correct and simplify allocator use. (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/integer/"&gt;Integer&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;gcd&lt;/span&gt;&lt;/code&gt;
in C++20 mode with clang 10.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for Embarcadero compilers. (&lt;a href="https://github.com/boostorg/integer/pull/21"&gt;PR#21&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/iterator/"&gt;Iterator&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&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;function_output_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 is now deprecated. Users
should replace its inclusion with &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;iterator&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;function_output_iterator&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/iterator/pull/51"&gt;PR#51&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for Embarcadero compilers. (&lt;a href="https://github.com/boostorg/iterator/pull/55"&gt;PR#55&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;
Fixed warnings on missing &lt;code&gt;&lt;span class="identifier"&gt;override&lt;/span&gt;&lt;/code&gt;
(thanks to EugeneZelenko &lt;a href="https://github.com/boostorg/lexical_cast/issues/35"&gt;#35&lt;/a&gt;, &lt;a href="https://github.com/boostorg/lexical_cast/issues/34"&gt;#34&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes for the the Embarcadero compilers (thanks to Edward Diener).
&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;
Bug fixes:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The syslog sink backend now verifies the IP version of the
local and target addresses set by user. The addresses must
have the same IP version as was specified in the &lt;code&gt;&lt;span class="identifier"&gt;ip_version&lt;/span&gt;&lt;/code&gt; named parameter
on the sink backend construction (by default, IPv4 is assumed).
When an address is obtained as a result of host name resolution,
only addresses with matching IP version are considered. (&lt;a href="https://github.com/boostorg/log/issues/119"&gt;#119&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New Features:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Move constructors and assignment operators of various components
were marked &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;range_manip&lt;/span&gt;&lt;/code&gt;
stream manipulator that can be used for outputting elements
of a range, optionally separated by a delimiter.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;tuple_manip&lt;/span&gt;&lt;/code&gt;
stream manipulator that can be used for outputting elements
of a tuple or any other heterogeneous sequence, optionally
separated by a delimiter.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;optional_manip&lt;/span&gt;&lt;/code&gt;
stream manipulator that can be used for outputting optionally
present values.
&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/mp11/"&gt;Mp11&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improved compilation performance of &lt;code&gt;&lt;span class="identifier"&gt;mp_with_index&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;N&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; for large &lt;code&gt;&lt;span class="identifier"&gt;N&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;tuple_transform&lt;/span&gt;&lt;/code&gt;
(contributed 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/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/basics.html#node_handling"&gt;node
extraction and insertion&lt;/a&gt; following the analogous interface
of associative containers as introduced in C++17. This feature has
also been extended to non key-based indices, in contrast to C++ standard
library sequence containers, which do not provide such functionality.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clarified documentation on read/write key extractors (issue &lt;a href="https://github.com/boostorg/multi_index/issues/32"&gt;#32&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/nowide/"&gt;Nowide&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The library now requires a C++11-compliant compiler and stdlib
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
LFS: Add support for files &amp;gt; 2 GB where the underlying system
supports it
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Generic UTF conversion functions are now available in the &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;nowide&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;utf&lt;/span&gt; &lt;span class="keyword"&gt;namespace&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add support for &lt;code&gt;&lt;span class="identifier"&gt;stat&lt;/span&gt;&lt;/code&gt;
with UTF-8 paths
&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;
Announcements:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The v2.1 branch is expected to be retired end of 2020, with
the v2.2 branch becoming the default. You can use the future
v2.2 branch now using &lt;a href="https://github.com/ned14/outcome/tree/better_optimisation"&gt;&lt;code&gt;&lt;span class="identifier"&gt;better_optimisation&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.
This branch has a number of major breaking changes to Outcome
v2.1, see the front page for details.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enhancements:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
BREAKING CHANGE &lt;code&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;/code&gt;
results and outcomes no longer default construct types during
explicit construction. Previously if you explicitly constructed
a &lt;code&gt;&lt;span class="identifier"&gt;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;&amp;gt;&lt;/span&gt;&lt;/code&gt;
from a non-errored &lt;code&gt;&lt;span class="identifier"&gt;result&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;, it default constructed
&lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt;. This was
found to cause unhelpful surprise, so it has been disabled.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New macro &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_ENABLE_LEGACY_SUPPORT_FOR&lt;/span&gt;&lt;/code&gt;.
The macro &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_ENABLE_LEGACY_SUPPORT_FOR&lt;/span&gt;&lt;/code&gt;
can be used to enable aliasing of older naming and features
to newer naming and features when using a newer version of
Outcome.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Concepts now have snake case style naming instead of camel
case style. When Outcome was first implemented, it was thought
that C++ 20 concepts were going to have camel case style. This
was changed before the C++ 20 release, and Outcome's concepts
have been renamed similarly. This won't break any code in Outcome
v2.1, as compatibility aliases are provided. However code compiled
against Outcome v2.2 will need to be upgraded, unless &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_ENABLE_LEGACY_SUPPORT_FOR&lt;/span&gt;&lt;/code&gt;
is set to &lt;code&gt;&lt;span class="number"&gt;210&lt;/span&gt;&lt;/code&gt; or
lower.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Concepts now live in &lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_V2_NAMESPACE&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;concepts&lt;/span&gt;&lt;/code&gt;
namespace. Previously concepts lived in the &lt;code&gt;&lt;span class="identifier"&gt;convert&lt;/span&gt;&lt;/code&gt;
namespace, now they live in their own namespace.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New concepts &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;&amp;gt;&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;basic_outcome&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; added. End users were finding
an unhelpful gap in between &lt;code&gt;&lt;span class="identifier"&gt;is_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;&amp;gt;&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;value_or_error&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; where they wanted a concept
that matched types which were &lt;code&gt;&lt;span class="identifier"&gt;basic_result&lt;/span&gt;&lt;/code&gt;,
but not exactly one of those. Concepts filling that gap were
added.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Operation &lt;code&gt;&lt;span class="identifier"&gt;TRY&lt;/span&gt;&lt;/code&gt;
works differently from Outcome v2.2 onwards. This is a severely
code breaking change which change the syntax of how one uses
&lt;code&gt;&lt;span class="identifier"&gt;OUTCOME_TRY&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;. A regular expression suitable
for upgrading code can be found in the list of changes between
Outcome v2.1 and v2.2.
&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/224"&gt;#224&lt;/a&gt;
The clang Apple ships in Xcode 11.4 (currently the latest)
has not been patched with the fixes to LLVM clang that fix
&lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;span class="special"&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;is_constructible&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="keyword"&gt;void&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;)&lt;/span&gt;&lt;/code&gt;
failing to compile which I originally submitted years ago.
So give up waiting on Apple to fix their clang, add a workaround
to Outcome.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Spare storage could not be used from within no-value policy
classes. Due to an obvious brain fart when writing the code
at the time, the spare storage APIs had the wrong prototype
which prevented them working from within policy classes. Sorry.
&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;
Fixed internal ambiguity problem between &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;type_erasure&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;any&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;any&lt;/span&gt;&lt;/code&gt; (issue &lt;a href="https://github.com/boostorg/poly_collection/issues/17"&gt;#17&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/smart_ptr/"&gt;SmartPtr&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;owner_equals&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;shared_ptr&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;weak_ptr&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;local_shared_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;owner_hash_value&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;shared_ptr&lt;/span&gt;&lt;/code&gt;, &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;owner_equal_to&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;owner_hash&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;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;hash&lt;/span&gt;&lt;/code&gt; specializations for &lt;code&gt;&lt;span class="identifier"&gt;shared_ptr&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;local_shared_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;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;hash&lt;/span&gt;&lt;/code&gt; support to, 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;hash&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;equal_to&lt;/span&gt;&lt;/code&gt;
specializations for, &lt;code&gt;&lt;span class="identifier"&gt;weak_ptr&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 a build error when compiled with &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;fno&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;exceptions&lt;/span&gt;&lt;/code&gt; (thanks to Jeremiah
Rodriguez &lt;a href="https://github.com/boostorg/stacktrace/issues/91"&gt;#91&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/system/"&gt;System&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt; &lt;span class="keyword"&gt;bool&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now returns &lt;code&gt;&lt;span class="identifier"&gt;failed&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; instead of &lt;code&gt;&lt;span class="identifier"&gt;value&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;.
&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;Type_Traits&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implemented &lt;code&gt;&lt;span class="identifier"&gt;conjunction&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;disjunction&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;negation&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;is_trivially_copyable&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;is_scoped_enum&lt;/span&gt;&lt;/code&gt;, and
&lt;code&gt;&lt;span class="identifier"&gt;is_unscoped_enum&lt;/span&gt;&lt;/code&gt;.
(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/variant/"&gt;Variant&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed warnings on missing &lt;code&gt;&lt;span class="identifier"&gt;override&lt;/span&gt;&lt;/code&gt;
(thanks to EugeneZelenko &lt;a href="https://github.com/boostorg/variant/issues/78"&gt;#78&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes for the the Embarcadero compilers (thanks to Edward Diener
&lt;a href="https://github.com/boostorg/variant/issues/79"&gt;#79&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated header locations to avoid warnings about using deprecated
headers (thanks to Andrey Semashev &lt;a href="https://github.com/boostorg/variant/issues/80"&gt;#80&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/variant2/"&gt;Variant2&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added support for derived types in &lt;code&gt;&lt;span class="identifier"&gt;visit&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved compilation performance for many (hundreds of) alternatives.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="identifier"&gt;visit&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;R&lt;/span&gt;&lt;span class="special"&gt;&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;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/wave/"&gt;Wave&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implement C++20 features for variadics, including &lt;code&gt;&lt;span class="identifier"&gt;__VA_OPT__&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/wave/pull/75"&gt;PR#75&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implement &lt;code&gt;&lt;span class="identifier"&gt;__has_include&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/wave/pull/102"&gt;PR#102&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Introduce new sample: &lt;code&gt;&lt;span class="identifier"&gt;check_macro_naming&lt;/span&gt;&lt;/code&gt;,
useful with Boost itself (&lt;a href="https://github.com/boostorg/wave/pull/97"&gt;PR#97&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix compilation issue caused by &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;
member removal in C++20 (&lt;a href="https://github.com/boostorg/wave/pull/72"&gt;PR#72&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Repair Xpressive lexer and &lt;code&gt;&lt;span class="identifier"&gt;token_statistics&lt;/span&gt;&lt;/code&gt;
sample (&lt;a href="https://github.com/boostorg/wave/pull/79"&gt;PR#79&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Repair lexertl lexer (&lt;a href="https://github.com/boostorg/wave/pull/78"&gt;PR#78&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensure hooks are run on predefined macros as well (&lt;a href="https://github.com/boostorg/wave/pull/87"&gt;PR#87&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various minor bug fixes
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
C++98/03 support is now deprecated and will be removed in 1.77
&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;
Fixed compilation errors for placeholders; they now work in the general
case, and in particular work with yap::print().
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
constexpr all the YAP.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix printing of correct value category in yap::print().
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Doc clarification.
&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_74_0.updated_tools"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated Tools&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/tools/boostbook/"&gt;Boostbook&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Change encoding of generated documentation from US-ASCII to UTF-8.
(Glen Fernandes)
&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_74_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_74_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.73.0</title><link>https://www.boost.org/users/history/version_1_73_0.html</link><guid>https://www.boost.org/users/history/version_1_73_0.html</guid><pubDate>Tue, 28 Apr 2020 03:57:05 +0000</pubDate><description>
&lt;div id="version_1_73_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;
Outcome &lt;code&gt;&lt;span class="identifier"&gt;status_code_domain&lt;/span&gt;&lt;/code&gt;
assertion removal
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/patches/1_73_0/0001-outcome-assert.patch"&gt;Outcome patch&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Beast and coroutines
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://www.boost.org/patches/1_73_0/0002-beast-coroutines.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 id="version_1_73_0.known_issues.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/nowide/"&gt;Nowide&lt;/a&gt;:&lt;/span&gt; Standard library functions
with UTF-8 API on Windows, from Artyom Beilis.
&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/static_string/"&gt;StaticString&lt;/a&gt;:&lt;/span&gt; A dynamically
resizable string of characters with compile-time fixed capacity and contiguous
embedded storage, from Vinnie Falco and Krystian Stasiowski
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_73_0.known_issues.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;
Update &lt;code&gt;&lt;span class="identifier"&gt;aligned_alloc&lt;/span&gt;&lt;/code&gt;
to support older mingw32.
&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;
Speedup compilation by not including &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;algorithm&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including 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/asio/"&gt;Asio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compatibility with C++20 concept syntax.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Marked the POSIX descriptor classes' move constructors as &lt;code&gt;&lt;span class="keyword"&gt;noexcept&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;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;host_name_verification&lt;/span&gt;&lt;/code&gt; class,
which is a drop-in replacement for &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;rfc2818_verification&lt;/span&gt;&lt;/code&gt;.
The &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;rfc2818_verification&lt;/span&gt;&lt;/code&gt; class has
been marked as deprecated. As a consequence of this change, SSL
support now depends on functions that were introduced in OpenSSL
1.0.2.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added an &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;context&lt;/span&gt;&lt;/code&gt; constructor to take ownership
of a native handle.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed C++ language version detection with &lt;tt&gt;gcc&lt;/tt&gt;
to use &lt;code&gt;&lt;span class="identifier"&gt;__cplusplus&lt;/span&gt;&lt;/code&gt;
macro.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a work counting issue in the asynchronous resolve operation
for endpoints.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the &lt;code&gt;&lt;span class="identifier"&gt;strand&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt; converting constructors
and assignment operators.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensured that resolvers are restarted correctly after a fork.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compatibility with the current NetBSD release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed spurious handler requirement checks in some &lt;code&gt;&lt;span class="identifier"&gt;async_read&lt;/span&gt;&lt;/code&gt; overloads.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;context&lt;/span&gt;&lt;/code&gt;
class to propagate non-EOF errors from the &lt;code&gt;&lt;span class="identifier"&gt;add_certificate_authority&lt;/span&gt;&lt;/code&gt;
function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a Windows-specific &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;/code&gt;
destructor hang that occurred when the pool had an associated I/O
object.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;tt&gt;select&lt;/tt&gt; reactor to recreate the "self
pipe trick" sockets on error. This addresses an issue on some
versions of Windows, where these sockets are discconected after
a system sleep.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a compile error in the buffered streams due to the lack of
reference collapsing in C++98.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;code&gt;&lt;span class="identifier"&gt;priority_scheduler&lt;/span&gt;&lt;/code&gt;
example to demonstrate calls to &lt;code&gt;&lt;span class="identifier"&gt;shutdown&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;destroy&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;
Removed some unnecessary null pointer checks.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed Windows platform detection to recognise TV titles as Windows
apps.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added some emscripten compatibility patches.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a compile error in the &lt;code&gt;&lt;span class="identifier"&gt;use_awaitable_t&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;as_default_on&lt;/span&gt;&lt;/code&gt;
function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed all uses of the boost.bind placeholders to use the &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;placeholders&lt;/span&gt;&lt;/code&gt; namespace.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a potential compile error in the &lt;code&gt;&lt;span class="identifier"&gt;async_compose&lt;/span&gt;&lt;/code&gt;
implementation due to incorrect overload selection.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Suppressed some non-virtual destructor warnings.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various documentation fixes and improvements.
&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/assert/"&gt;Assert&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;source_location&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/atomic/"&gt;Atomic&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implemented C++20 &lt;code&gt;&lt;span class="identifier"&gt;atomic_ref&lt;/span&gt;&lt;/code&gt;.
See &lt;a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref"&gt;docs&lt;/a&gt;
and especially the &lt;a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref.caveats"&gt;caveats&lt;/a&gt;
section.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implemented &lt;code&gt;&lt;span class="identifier"&gt;atomic_flag&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;test&lt;/span&gt;&lt;/code&gt;
operation, which was introduced in C++20.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;atomic&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;
should now take into account alignment requirements of &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt;, which makes a difference if
those requirements are higher than that of the internal storage
of &lt;code&gt;&lt;span class="identifier"&gt;atomic&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added static asserts enforcing the requirements on the value type
&lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt; used with &lt;code&gt;&lt;span class="identifier"&gt;atomic&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;atomic_ref&lt;/span&gt;&lt;/code&gt;.
This should prohibit invalid types from being used as atomics.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved internal lock pool implementation. The pool is larger,
and lock selection accounts for atomic object alignment, which
should reduce the potential of thread contention.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed incorrect x86 code generated for &lt;code&gt;&lt;span class="identifier"&gt;bit_test_and_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; operations on 8 and 16-bit arguments.
Other architectures are not affected.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a possible unaligned memory access in &lt;code&gt;&lt;span class="identifier"&gt;compare_exchange_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; operations, if alignment requirements
of &lt;code&gt;&lt;span class="identifier"&gt;value_type&lt;/span&gt;&lt;/code&gt; are
less than that of the internal storage of &lt;code&gt;&lt;span class="identifier"&gt;atomic&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&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;atomic&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;atomic&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; no longer includes &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;atomic&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;atomic_flag&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;atomic&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;fences&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
and only defines the &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;atomic&lt;/span&gt;&lt;/code&gt;
class template and related typedefs. Include the other headers
explicitly or use &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;atomic&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
to include all parts of Boost.Atomic.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;atomic&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;storage&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
accessor and associated &lt;code&gt;&lt;span class="identifier"&gt;atomic&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;storage_type&lt;/span&gt;&lt;/code&gt;
type are deprecated. Instead, users are advised to use &lt;code&gt;&lt;span class="identifier"&gt;atomic&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;value&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;atomic&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;value_type&lt;/span&gt;&lt;/code&gt;, respectively. Users
can define &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATOMIC_SILENCE_STORAGE_DEPRECATION&lt;/span&gt;&lt;/code&gt;
to disable deprecation warnings for the time of transition. The
deprecated pieces will be removed in a future release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed support for &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST&lt;/span&gt;&lt;/code&gt;.
This macro was used as a helper for transition to the updated returned
values of &lt;code&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;span class="identifier"&gt;_and_test&lt;/span&gt;&lt;/code&gt;
operations in Boost.Atomic 1.67, which was released 2 years before
1.73.
&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.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Nested &lt;code&gt;&lt;span class="identifier"&gt;mutable_data_type&lt;/span&gt;&lt;/code&gt;
in Beast dynamic buffers is deprecated.
&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/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/133"&gt;#133&lt;/a&gt;: IBM Z: Fix fcontext routines
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/132"&gt;#132&lt;/a&gt;: mips64/n64: .align 3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/131"&gt;#131&lt;/a&gt;: Use OSPLAT MIPS32/MIPS64 to set different ABI
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/context/issues/129"&gt;#129&lt;/a&gt;: Fix non-PIC in RISC-V assembly
&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;
Added &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;polymorphic_downcast&lt;/span&gt;&lt;/code&gt; for references
(thanks to Julien Delacroix for the patch).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Significant docs update.
&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/date_time/"&gt;date_time&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/date_time/issues/123"&gt;#123&lt;/a&gt;: Support constexpr in c++14 and above
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/date_time/issues/134"&gt;#134&lt;/a&gt;: Make date_time all inline. Users no longer need
to link the library for any functions. Library remains for build
compatibility.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/date_time/issues/132"&gt;#132&lt;/a&gt;: Deprecate support for legacy io and &lt;code&gt;&lt;span class="identifier"&gt;USE_DATE_TIME_PRE_1_33_FACET_IO&lt;/span&gt;&lt;/code&gt;
macro
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Misc documentation updates and bugfixes.
&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;
Fixes and tests for demangling in &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;dll&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;smart_library&lt;/span&gt;&lt;/code&gt;
(thanks to Ramil Gauss for &lt;a href="https://github.com/boostorg/dll/issues/35"&gt;#35&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Make UB sanitizers happy with &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;dll&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;load_mode&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;type&lt;/span&gt;&lt;/code&gt;
&lt;a href="https://github.com/boostorg/dll/issues/30"&gt;#30&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ceased dependence on MPL improving compile times (thanks to Nikita
Kniazev for &lt;a href="https://github.com/boostorg/dll/issues/34"&gt;#34&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang and ICC on Windows fixes and CI support for those platforms
(thanks to Nikita Kniazev &lt;a href="https://github.com/boostorg/dll/issues/33"&gt;#33&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including CI hardening and tests improving.
&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;
Fixed a portability issue in the definition of the maximum block
limit.
&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/geometry/"&gt;Geometry&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/650"&gt;PR#650&lt;/a&gt; Missing input combinations in &lt;code&gt;&lt;span class="identifier"&gt;intersection&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
and introduction of tupled-output.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/671"&gt;PR#671&lt;/a&gt; Added &lt;code&gt;&lt;span class="identifier"&gt;d3&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;point_xyz&lt;/span&gt;&lt;/code&gt;
geometry model (thanks to Digvijay Janartha).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Solved issues
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/657"&gt;#657&lt;/a&gt; Incorrect definition of &lt;code&gt;&lt;span class="identifier"&gt;EPSG&lt;/span&gt;&lt;span class="special"&gt;:&lt;/span&gt;&lt;span class="number"&gt;3785&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;
Bugfixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/639"&gt;PR#639&lt;/a&gt; R-tree exception-safety improvement.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/668"&gt;PR#668&lt;/a&gt; Andoyer inverse formula fixed for close
points.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/687"&gt;PR#687&lt;/a&gt; Fixed dangling reference in distance algorithm.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Deprecation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/590"&gt;#590&lt;/a&gt; Support for C++03 has been deprecated and
Geometry will require C++14 from Boost 1.75 onwards.
&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;
Added move constructor and move assignment operator to &lt;code&gt;&lt;span class="identifier"&gt;image&lt;/span&gt;&lt;/code&gt; class (&lt;a href="https://github.com/boostorg/gil/pull/457"&gt;PR#457&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New member function &lt;code&gt;&lt;span class="identifier"&gt;size&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; in &lt;code&gt;&lt;span class="identifier"&gt;any_image_view&lt;/span&gt;&lt;/code&gt;
class (&lt;a href="https://github.com/boostorg/gil/pull/456"&gt;PR#456&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;
Replace Boost.Test with Boost.LightweightTest as the only
test framework used in GIL (&lt;a href="https://github.com/boostorg/gil/pull/459"&gt;PR#459&lt;/a&gt;) and (&lt;a href="https://github.com/boostorg/gil/pull/464"&gt;PR#464&lt;/a&gt;).
This also restructured the &lt;code&gt;&lt;span class="identifier"&gt;test&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;extension&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;io&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;/code&gt; sub-tree and targets in
related &lt;code&gt;&lt;span class="identifier"&gt;Jamfile&lt;/span&gt;&lt;/code&gt;-s.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed remaining uses of Boost.MPL (&lt;a href="https://github.com/boostorg/gil/pull/459"&gt;PR#459&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Renamed all macros using &lt;code&gt;&lt;span class="identifier"&gt;BOOST_GIL_&lt;/span&gt;&lt;/code&gt;
prefix (&lt;a href="https://github.com/boostorg/gil/pull/411"&gt;PR#411&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Renamed all CMake configuration options using &lt;code&gt;&lt;span class="identifier"&gt;BOOST_GIL_&lt;/span&gt;&lt;/code&gt; prefix (&lt;a href="https://github.com/boostorg/gil/pull/419"&gt;PR#419&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;
Removed &lt;code&gt;&lt;span class="identifier"&gt;extension&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;dynamic_image&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;reduce&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
as unused and possibly unfinished (&lt;a href="https://github.com/boostorg/gil/pull/466"&gt;PR#466&lt;/a&gt;). An implementation
attempt of techniques described in the paper &lt;a href="http://lubomir.org/academic/MinimizingCodeBloat.pdf"&gt;Efficient
Run-Time Dispatching in Generic Programming with Minimal
Code Bloat&lt;/a&gt; by Lubomir Bourdev, Jaakko Jarvi.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed direct dependency on Boost.MPL, Boost.System and
Boost.Test.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Started removing public macros for compile-time configuration
of I/O extension tests, i.e. &lt;code&gt;&lt;span class="identifier"&gt;BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES&lt;/span&gt;&lt;/code&gt;.
Instead, if a test target is built, it builds all its test
cases unconditionally.
&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;
Avoid &lt;code&gt;&lt;span class="identifier"&gt;longjmp&lt;/span&gt;&lt;/code&gt;
interaction during destruction of I/O extension objects (&lt;a href="https://github.com/boostorg/gil/pull/433"&gt;PR#433&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed missing alignment default value in constructor of
&lt;code&gt;&lt;span class="identifier"&gt;image&lt;/span&gt;&lt;/code&gt; class
(&lt;a href="https://github.com/boostorg/gil/pull/429"&gt;PR#429&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed segmentation fault when reading corrupted PNG file
(&lt;a href="https://github.com/boostorg/gil/pull/414"&gt;PR#414&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed illegal initialization of return values in the old
IOv1 interface of I/O extension (&lt;a href="https://github.com/boostorg/gil/pull/409"&gt;PR#409&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Acknowledgements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Samuel Debionne, Thiago Henrique Hüpner, Pranam Lashkari,
Mateusz Loskot, Debabrata Mandal, Olzhas Zhumabek
&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;
New features
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;crop&lt;/span&gt;&lt;/code&gt;
command to &lt;code&gt;&lt;span class="identifier"&gt;reduce&lt;/span&gt;&lt;/code&gt;
algorithm
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;slice&lt;/span&gt;&lt;/code&gt; command
in &lt;code&gt;&lt;span class="identifier"&gt;reduce&lt;/span&gt;&lt;/code&gt;
now works on &lt;code&gt;&lt;span class="identifier"&gt;category&lt;/span&gt;&lt;/code&gt;
axis
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;count&lt;/span&gt;&lt;/code&gt;
accumulator, can be used to add arbitrary metadata to each
cell
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;sum&lt;/span&gt;&lt;/code&gt; algorithm
gained a new argument to optionally sum only over inner bins
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Several fixes for bugs in corner cases
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enhanced documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
How to use Boost.Histogram as a backend in an external API
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
More on how to use Boost.Histogram with custom accumulators
and Boost.Accumulators
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
More on how to use &lt;code&gt;&lt;span class="identifier"&gt;reduce&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated benchmarks
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
See the &lt;a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html"&gt;full
changelog here&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/icl/"&gt;icl&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/icl/pull/23"&gt;PR#23&lt;/a&gt;: Remove references to date_time compiled library.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/icl/pull/17"&gt;PR#17&lt;/a&gt;: Fix forward decl lower and upper less equal.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Misc bugfixes.
&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/io/"&gt;IO&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Made all the IOS state saver classes non-copyable. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correctly handle error upon first read from the input stream when
reading a quoted string. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Implemented &lt;code&gt;&lt;span class="identifier"&gt;ostream_joiner&lt;/span&gt;&lt;/code&gt;
for delimiter based joining. (Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Relocated &lt;code&gt;&lt;span class="identifier"&gt;ostream_string&lt;/span&gt;&lt;/code&gt;
from the Utility library to the IO library as &lt;code&gt;&lt;span class="identifier"&gt;ostream_put&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correctly handle stream width and fill in quoted output. (Glen
Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimize quoted output to write directly to the stream buffer.
(Glen Fernandes)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Glen Fernandes became the maintainer of the IO library.
&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;
Maintenance work, including CI hardening and better workarounds
for broken standard libraries (thanks to Nikita Kniazev &lt;a href="https://github.com/boostorg/lexical_cast/issues/31"&gt;#31&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/lexical_cast/issues/32"&gt;#32&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;
Default sink used in trivial logging, when no sinks are registered
in the logging core, now automatically flushes output after
each log record. (&lt;a href="https://github.com/boostorg/log/issues/103"&gt;#103&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;core&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;flush&lt;/span&gt;&lt;/code&gt; now performs a flush
on the default sink used for trivial logging, when no sinks
are registered.
&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;
Added a workaround for some syslog API implementations (e.g.
glibc), which do not save the application identification
string in &lt;code&gt;&lt;span class="identifier"&gt;openlog&lt;/span&gt;&lt;/code&gt;
call. Such implementations could access already freed memory
on each &lt;code&gt;&lt;span class="identifier"&gt;syslog&lt;/span&gt;&lt;/code&gt;
call, resulting in undefined behavior. (&lt;a href="https://github.com/boostorg/log/issues/97"&gt;#97&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed that log file rotation on a specific day of month (e.g.
&lt;code&gt;&lt;span class="identifier"&gt;rotation_at_time_point&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;gregorian&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;greg_day&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;span class="special"&gt;))&lt;/span&gt;&lt;/code&gt;) could be silently ignored
and not happen. (&lt;a href="https://github.com/boostorg/log/issues/98"&gt;#98&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed that &lt;code&gt;&lt;span class="identifier"&gt;text_file_backend&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;rotate_file&lt;/span&gt;&lt;/code&gt;
could throw if there were no log records written yet and
target file name pattern was set.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ported various components of the library 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;allocator_traits&lt;/span&gt;&lt;/code&gt; to improve
compatibility with C++20 allocators.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compilation errors when building in MSYS2 Cygwin environment.
(&lt;a href="https://github.com/boostorg/log/issues/102"&gt;#102&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;
IMPORTANT: C++03 support is now deprecated and will be removed
from March 2021.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Cubic Hermite Interpolation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Modified Akima Interpolation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added PCHIP Interpolation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Quintic Hermite Interpolation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added entropy to numerous distributions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Allow trivial quadrature case where the two end points are equal,
and in addition allow bounds to be interchanged.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix exp_sinh quadrature to work with complex types over a non-native
range.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix miscellaneous compiler warnings in factorial.hpp.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use std::chrono rather than boost::chrono in timed pFq calculations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove much of the old boost::mpl dependencies to improve constexpr
support.
&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;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_unique_if&lt;/span&gt;&lt;/code&gt;
(contributed by Kris Jusiak)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_flatten&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_rotate_left&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_rotate_right&lt;/span&gt;&lt;/code&gt;
(contributed by Duncan Barber)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_compose&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_power_set&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_partial_sum&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_iterate&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;multi_index_container&lt;/span&gt;&lt;/code&gt;
is now &lt;a href="https://en.cppreference.com/w/cpp/named_req/AllocatorAwareContainer"&gt;&lt;code&gt;&lt;span class="identifier"&gt;AllocatorAware&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Swapping of internal &lt;code&gt;&lt;span class="identifier"&gt;KeyFromValue&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;Compare&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;Hash&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;Pred&lt;/span&gt;&lt;/code&gt;
objects now selects the appropriate &lt;code&gt;&lt;span class="identifier"&gt;swap&lt;/span&gt;&lt;/code&gt;
function between &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;swap&lt;/span&gt;&lt;/code&gt;
and ADL candidates, in accordance with standard specifications
in &lt;strong&gt;[swappable.requirements]&lt;/strong&gt; (issue
&lt;a href="https://github.com/boostorg/multi_index/issues/29"&gt;#29&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Provided some internal copy constructors and assignment operators
whose default implicit definition is deprecated in C++11 onwards
(&lt;strong&gt;[depr.impldec]&lt;/strong&gt;), which was warned
about on some compilers.
&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;
IMPORTANT: Mark C++03 support as deprecated and due for removal
in 2021.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Big update to cpp_int adds faster Karatsuba and Coomba multiplication
routines.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix conversion of gmp_rational to &lt;code&gt;&lt;span class="keyword"&gt;long&lt;/span&gt;
&lt;span class="keyword"&gt;double&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;__float128&lt;/span&gt;&lt;/code&gt;, fixes #178.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix up libtommath support to function with the latest libtom releases.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix up some incompatibilities with the latest Intel C++ compiler.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix up &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; arithmetic
support for latest MSVC release.
&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;
Performance of Outcome-based code compiled by clang has been
greatly improved. The previous implementation of Outcome's
status bitfield confused clang's optimiser, which caused
low quality codegen. Unlike most codegen issues, this was
noticeably in empirical benchmarks of real world code, as
was shown by &lt;a href="https://wg21.link/P1886"&gt;P1886
&lt;strong&gt;Error speed benchmarking&lt;/strong&gt;&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The safe part of the &lt;a href="https://github.com/ned14/outcome/tree/better_optimisation"&gt;&lt;code&gt;&lt;span class="identifier"&gt;better_optimisation&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;
Outcome v2.2.0 future branch was merged to Outcome v2.1.3
which includes a new status bitfield implementation. This
appears to not confuse clang's optimiser, and clang 9 produces
code which routinely beats GCC 9's code for various canned
use cases.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Installability is now CI tested per commit. Due to installability
of standalone Outcome (e.g. &lt;code&gt;&lt;span class="identifier"&gt;make&lt;/span&gt;
&lt;span class="identifier"&gt;install&lt;/span&gt;&lt;/code&gt;) breaking
itself rather more frequently than is ideal, installability
is now tested on CI per commit.
&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/214"&gt;#214&lt;/a&gt;
Newer Concepts implementing compilers were unhappy with the
early check for destructibility of &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;E&lt;/span&gt;&lt;/code&gt;, so
removed template constraints, falling back to static assert
which runs later in the type instantiation sequence.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/ned14/outcome/issues/220"&gt;#220&lt;/a&gt;
A false positive undefined behaviour sanitiser failure in
some use cases of Experimental Outcome was worked around
to avoid the failure message.
&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;
Suppressed a potential redundant move warning in &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;poly_collection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;for_each&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a bug by which elements were copied rather than moved in
allocator-extended move construction and move assigment between
collections with non-propagating, unequal allocators.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Allocator-extended move construction no longer decays to allocator-extended
copy construction for the legacy version of libstdc++-v3 shipped
with GCC 4.8 (which can also be used by Clang).
&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;
Added documentation on distribution of PDBs &lt;a href="https://github.com/boostorg/stacktrace/issues/55"&gt;#55&lt;/a&gt;, &lt;a href="https://github.com/boostorg/stacktrace/issues/47"&gt;#47&lt;/a&gt; (thanks
to emptyVoid and Roger Orr for information and to zlojvavan for
testing).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed msvc-9 build
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including test fixes &lt;a href="https://github.com/boostorg/stacktrace/issues/86"&gt;#86&lt;/a&gt;, fixing
typos &lt;a href="https://github.com/boostorg/stacktrace/issues/84"&gt;#84&lt;/a&gt;, CI improvements and hardening, inspect tool
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/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.test v3.13 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: It is now possible to combine tolerance indication,
user message and collection comparison modifier in a single &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TEST&lt;/span&gt;&lt;/code&gt; expression. See change
logs for more details.
&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/173"&gt;#173&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/179"&gt;#179&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/220"&gt;#220&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/221"&gt;#221&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/issues/235"&gt;#235&lt;/a&gt;
&lt;a href="https://github.com/boostorg/test/issues/237"&gt;#237&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/241"&gt;#241&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/245"&gt;#245&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/246"&gt;#246&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/issues/251"&gt;#251&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/253"&gt;#253&lt;/a&gt;
&lt;a href="https://github.com/boostorg/test/issues/254"&gt;#254&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/issues/263"&gt;#263&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Trac tickets: &lt;a href="https://svn.boost.org/trac/boost/ticket/11107"&gt;#11107&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/41"&gt;PR#41&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/114"&gt;PR#114&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/187"&gt;PR#187&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/pull/239"&gt;PR#239&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/247"&gt;PR#247&lt;/a&gt;
&lt;a href="https://github.com/boostorg/test/pull/252"&gt;PR#252&lt;/a&gt;, &lt;a href="https://github.com/boostorg/test/pull/259"&gt;PR#259&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/test/pull/265"&gt;PR#265&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/throw_exception/"&gt;ThrowException&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added an overload of &lt;code&gt;&lt;span class="identifier"&gt;throw_exception&lt;/span&gt;&lt;/code&gt;
that takes a &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;source_location&lt;/span&gt;&lt;/code&gt;
object.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
NOTE: Projects using &lt;code&gt;&lt;span class="identifier"&gt;BOOST_THROW_EXCEPTION&lt;/span&gt;&lt;/code&gt;
with exceptions disabled will need to add a definition of this
new overload.
&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/tti/"&gt;TTI&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added introspection of function templates for more recent C++ compilers
versions from gcc and vc++. as well as all versions of clang. Older
versions of vc++ before 14.0 and gcc prior to 4.8 may fail.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added specific introspection for elements of struct/class, enum,
and union types, which can be used for more fine-grained introspection
than the general 'type' introspection.
&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;
Maintenance work, including CI integration with inspect tool.
&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;
The &lt;code&gt;&lt;span class="identifier"&gt;ostream_string&lt;/span&gt;&lt;/code&gt;
facility has moved from the Utility library to the IO library as
&lt;code&gt;&lt;span class="identifier"&gt;ostream_put&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/variant/"&gt;Variant&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Removed unused includes (thanks to Nikita Kniazev &lt;a href="https://github.com/boostorg/variant/issues/74"&gt;#74&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed zero-as-null-pointer-constat warnings (thanks to Bart Siwek
&lt;a href="https://github.com/boostorg/variant/issues/77"&gt;#77&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Maintenance work, including typo 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/variant2/"&gt;Variant2&lt;/a&gt;:&lt;/span&gt;
&lt;ul&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;hash&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;hash&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;variant&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;
is now trivial when all types in &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;span class="special"&gt;...&lt;/span&gt;&lt;/code&gt; are trivial. This improves performance
by enabling it to be passed to, and returned from, functions in
registers.
&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/winapi/"&gt;WinAPI&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Headers in &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;winapi&lt;/span&gt;&lt;/code&gt;
are deprecated and will be removed in a future release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.WinAPI headers no longer include &lt;code&gt;&lt;span class="identifier"&gt;winerror&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;h&lt;/span&gt;&lt;/code&gt;.
Include &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;winapi&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;error_codes&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; to get Windows error codes.
(&lt;a href="https://github.com/boostorg/winapi/issues/81"&gt;#81&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_73_0.known_issues.updated_tools"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated Tools&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/tools/build/"&gt;Build&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Includes release &lt;a href="https://github.com/boostorg/build/releases/tag/4.2.0"&gt;4.2.0&lt;/a&gt;
of B2.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
WARNING: Since version 4.0.0 B2 requires a capable C++11 compiler
to bootstrap. This is only needed to build B2 itself not to build
Boost for your use.
&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_73_0.known_issues.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_73_0.known_issues.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
</description></item><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>