2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-19 04:42:17 +00:00
Files
website/generated/news.rss
Automated Commit 0fd0298015 Release 1.89.0
2025-08-14 02:19:45 +00:00

6826 lines
349 KiB
XML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:boostbook="urn:boost-org:boostbook" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<generator>Boost Website Site Tools</generator>
<title>Boost News</title>
<link>https://www.boost.org/users/news/</link>
<atom:link href="https://www.boost.org/generated/news.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.89.0</title><link>https://www.boost.org/users/history/version_1_89_0.html</link><guid>https://www.boost.org/users/history/version_1_89_0.html</guid><pubDate>Thu, 14 Aug 2025 02:16:56 +0000</pubDate><description>
&lt;div id="version_1_89_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/bloom/"&gt;Bloom&lt;/a&gt;:&lt;/span&gt;
Bloom filters, from Joaquín
M López Muñoz.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_89_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/any/"&gt;Any&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Initial support for C++20 Modules&lt;/strong&gt;.
See the docs for more info.
&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;
Added allocator constructors to &lt;code&gt;&lt;span class="identifier"&gt;execution_context&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;io_context&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;/code&gt;, with the supplied
allocator being used for allocating objects associated with the execution
context.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new configuration parameter "timer" / "heap_reserve"
that may be used to reserve space in the vector used for a timer
queue's heap.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new configuration parameter "resolver" / "threads"
that specifies the number of internal threads used by &lt;code&gt;&lt;span class="identifier"&gt;async_resolve&lt;/span&gt;&lt;/code&gt; to emulate asynchronous
address resolution.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed &lt;code&gt;&lt;span class="identifier"&gt;deadline_timer&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;basic_deadline_timer&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;time_traits&lt;/span&gt;&lt;/code&gt; from
the convenience header &lt;tt&gt;boost/asio.hpp&lt;/tt&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensured that the Windows named pipes created by &lt;code&gt;&lt;span class="identifier"&gt;connect_pipe&lt;/span&gt;&lt;/code&gt;
use unique names that do not conflict if Asio is used in multiple,
independent plug-in DLLs.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_CONCURRENCY_HINT_SAFE&lt;/span&gt;&lt;/code&gt;
to be consistent with the &lt;code&gt;&lt;span class="identifier"&gt;io_context&lt;/span&gt;&lt;/code&gt;
default constructor.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the documentation for &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IO&lt;/span&gt;&lt;/code&gt;
to reflect that registration locking is still enabled.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added separate &lt;tt&gt;b2&lt;/tt&gt; and &lt;tt&gt;cmake&lt;/tt&gt;
build targets for optional dependencies.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="special"&gt;[[&lt;/span&gt;&lt;span class="identifier"&gt;noreturn&lt;/span&gt;&lt;span class="special"&gt;]]&lt;/span&gt;&lt;/code&gt; attribute 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;asio&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;throw_exception&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;co_spawn&lt;/span&gt;&lt;/code&gt; to
adhere to the asynchronous operation requirement for non-reentrant
invocation of the completion handler.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a documentation note on &lt;code&gt;&lt;span class="identifier"&gt;basic_signal_set&lt;/span&gt;&lt;/code&gt;
async signal safety.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed various minor compilation errors on different platforms.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Consult the &lt;a href="https://www.boost.org/doc/libs/1_89_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 TSAN instrumentation in asm-based x86, AArch32, AArch64 and
PPC backends. This silences TSAN false errors for code using Boost.Atomic
for thread synchronization.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Following the announcement in Boost 1.84, removed support for Windows
versions older than Windows 10.
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
A note to MinGW-w64 users. Since Windows SDK headers on MinGW-w64
define &lt;code&gt;&lt;span class="identifier"&gt;_WIN32_WINNT&lt;/span&gt;&lt;/code&gt;
to an older Windows version by default, you may need to define
&lt;code&gt;&lt;span class="identifier"&gt;_WIN32_WINNT&lt;/span&gt;&lt;span class="special"&gt;=&lt;/span&gt;&lt;span class="number"&gt;0x0A00&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;BOOST_USE_WINAPI_VERSION&lt;/span&gt;&lt;span class="special"&gt;=&lt;/span&gt;&lt;span class="number"&gt;0x0A00&lt;/span&gt;&lt;/code&gt;
when compiling Boost.Atomic and the code that uses Boost.Atomic.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for Windows CE is deprecated and will be removed in a future
release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for timed waiting operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Exposed &lt;code&gt;&lt;span class="identifier"&gt;thread_pause&lt;/span&gt;&lt;/code&gt;
operation, which can be used as a backoff measure in spin loops.
Added support for PowerPC and improved support for AArch64 in &lt;code&gt;&lt;span class="identifier"&gt;thread_pause&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT&lt;/span&gt;&lt;/code&gt;
macro definition. Since the library now requires C++11, &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATOMIC_FLAG_INIT&lt;/span&gt;&lt;/code&gt; is always
supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled bitwise operations for atomic enumerations. This can be useful
when enumerations are used to implement bit masks.
&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;
Fixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Conditionally defined &lt;code&gt;&lt;span class="identifier"&gt;immediate_executor_type&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;async_base&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;cstdint&lt;/span&gt;&lt;/code&gt;
header to &lt;code&gt;&lt;span class="identifier"&gt;detail&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;cpu_info&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;
Fixed &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_trivial&lt;/span&gt;&lt;/code&gt; deprecation warnings.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;handshake_timeout&lt;/span&gt;&lt;/code&gt;
now applies to closing handshakes during reads.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Replaced &lt;code&gt;&lt;span class="identifier"&gt;detail&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;work_guard&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
with &lt;code&gt;&lt;span class="identifier"&gt;net&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;executor_work_guard&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed portability issues for building tests in MinGW.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Removed moved sections from documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed superfluous log messages from tests.
&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;
yliu1021
&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/charconv"&gt;Charconv&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a performance degradation with &lt;code&gt;&lt;span class="identifier"&gt;from_chars&lt;/span&gt;&lt;/code&gt;
for integer types
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed rounding and trailing decimal place bugs with &lt;code&gt;&lt;span class="identifier"&gt;to_chars&lt;/span&gt;&lt;/code&gt; for specified precisions
with floating point types
&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/cobalt/"&gt;Cobalt&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Move assign fixed for generator &amp;amp; promise.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed internal exceptions
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added IO library. Cobalt.io provides a large subset of asio as a
compiled 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/compat/"&gt;Compat&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;move_only_function&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/container_hash/"&gt;ContainerHash&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="identifier"&gt;hash_is_avalanching&lt;/span&gt;&lt;/code&gt;
trait class.
&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 an ability to use &lt;code&gt;&lt;span class="identifier"&gt;polymorphic_downcast&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;polymorphic_cast&lt;/span&gt;&lt;/code&gt;
in constexpr (requires C++20).
&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;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;bit_ceil&lt;/span&gt;&lt;/code&gt; to
return 1 for input 0 as per specification. (&lt;a href="https://github.com/boostorg/core/pull/199"&gt;PR#199&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;format&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;core&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;. (&lt;a href="https://github.com/boostorg/core/issues/190"&gt;#190&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/detail/"&gt;Detail&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Operators generated by &lt;code&gt;&lt;span class="identifier"&gt;BOOST_BITMASK&lt;/span&gt;&lt;/code&gt;
now use underlying type of the enum to implement bitwise operators.
The operators are marked &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt;, when
possible.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The function &lt;code&gt;&lt;span class="identifier"&gt;bitmask_set&lt;/span&gt;&lt;/code&gt;
generated by &lt;code&gt;&lt;span class="identifier"&gt;BOOST_BITMASK&lt;/span&gt;&lt;/code&gt;
is marked deprecated. In a future release, &lt;code&gt;&lt;span class="identifier"&gt;BOOST_BITMASK&lt;/span&gt;&lt;/code&gt;
will stop producing this function. Users are recommended to use double
negation (&lt;code&gt;&lt;span class="special"&gt;!!&lt;/span&gt;&lt;span class="identifier"&gt;mask&lt;/span&gt;&lt;/code&gt;)
to test if the value is zero. This affects e.g. enums defined in
Boost.Filesystem.
&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;
Fixed compiling and exporting on Cygwin. Many thanks to &lt;a href="https://github.com/Luohaothu"&gt;Luohao
Wang&lt;/a&gt; for the PR!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed building on FreeBSD. Thanks to &lt;a href="https://github.com/agokhale"&gt;ash&lt;/a&gt;
for the bug report!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;BOOST_DLL_USE_STD_FS&lt;/span&gt;&lt;/code&gt;
CMake option to match the preprocessor option. Thanks to &lt;a href="https://github.com/yurybura"&gt;Yury
Bura&lt;/a&gt; for the PR!
&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;
Corrected ASAN warnings about comparing pointers to potentially unrelated
objects in &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;append&lt;/span&gt;&lt;/code&gt;. (&lt;a href="https://github.com/boostorg/filesystem/issues/335"&gt;#335&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/geometry/"&gt;Geometry&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Major improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1369"&gt;PR#1369&lt;/a&gt; Rewrite of traversal
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1402"&gt;PR#1402&lt;/a&gt; Add geometry polyhedral surface
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&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/1404"&gt;PR#1404&lt;/a&gt; Performance improvements in buffer
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1405"&gt;PR#1405&lt;/a&gt; Avoid static variables and functions in
header files
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Breaking changes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1401"&gt;PR#1401&lt;/a&gt; Remove deprecated headers
&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/1221"&gt;#1221&lt;/a&gt; Difference with rectilinear multipolygon with
integer coordinates produces invalid polygon with disconnected
interior
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1295"&gt;#1295&lt;/a&gt; Wrong result in intersection (result polygon
is equal to the biggest of the input polygons)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1349"&gt;#1349&lt;/a&gt; Difference of polygons giving wrong result
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1382"&gt;#1382&lt;/a&gt; Buffer operation creates self-intersection
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes of errors and warnings
&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/hash2/"&gt;Hash2&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added Blake2 algorithm (&lt;code&gt;&lt;span class="identifier"&gt;blake2s_256&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;blake2b_512&lt;/span&gt;&lt;/code&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added XXH3 algorithm (&lt;code&gt;&lt;span class="identifier"&gt;xxh3_128&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/iterator/"&gt;Iterator&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;filter_iterator&lt;/span&gt;&lt;/code&gt;
copy/converting constructor, which could previously produce an invalid
iterator. (&lt;a href="https://github.com/boostorg/iterator/issues/92"&gt;#92&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed usage of &lt;code&gt;&lt;span class="identifier"&gt;is_trivial&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;iterator_facade&lt;/span&gt;&lt;/code&gt;
as it is deprecated in C++26. (&lt;a href="https://github.com/boostorg/iterator/issues/93"&gt;#93&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;iterator_facade&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;
now always returns a proxy rather than conditionally returning a
value or a proxy. This allows users to bind a reference to the result
of the operator, regardless of whether the value type is trivially-copyable.
(&lt;a href="https://github.com/boostorg/iterator/issues/61"&gt;#61&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The proxy returned by &lt;code&gt;&lt;span class="identifier"&gt;iterator_facade&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; now supports forwarding dereferencing
operators to the referenced value. This allows &lt;code&gt;&lt;span class="identifier"&gt;it&lt;/span&gt;&lt;span class="special"&gt;[&lt;/span&gt;&lt;span class="identifier"&gt;n&lt;/span&gt;&lt;span class="special"&gt;]-&amp;gt;&lt;/span&gt;&lt;span class="identifier"&gt;foo&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;it&lt;/span&gt;&lt;span class="special"&gt;[&lt;/span&gt;&lt;span class="identifier"&gt;n&lt;/span&gt;&lt;span class="special"&gt;]).&lt;/span&gt;&lt;span class="identifier"&gt;foo&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
expressions to compile.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The proxy returned by &lt;code&gt;&lt;span class="identifier"&gt;iterator_facade&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; now implementes perfect forwarding
in its assignment operator.
&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/json/"&gt;JSON&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Revamped documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optionals that are ranges are categorised as optionals.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Described class support is enabled for types with bases.
&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;
Added support for &lt;code&gt;&lt;span class="identifier"&gt;BOOST_LOG_WITHOUT_ASIO&lt;/span&gt;&lt;/code&gt;
configuration macro, which can be used to remove the dependency on
Boost.Asio and disable the related functionality.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use locale-independent formatting of the file counter in &lt;code&gt;&lt;span class="identifier"&gt;text_file_backend&lt;/span&gt;&lt;/code&gt; when composing
log file names. This fixes failures in the subsequent parsing of
the file names in &lt;code&gt;&lt;span class="identifier"&gt;file_collector&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;scan_for_files&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/log/pull/246"&gt;PR#246&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &lt;code&gt;&lt;span class="identifier"&gt;wrap_filter&lt;/span&gt;&lt;/code&gt;
utility that simplifies injecting user-defined function objects in
filtering expressions. (&lt;a href="https://github.com/boostorg/log/issues/195"&gt;#195&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/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Add explicit C++14 &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;type_traits&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; requirement
to builds
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Collected fixes for GPU support on a variety of platforms
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix lower incomplete gamma function with x = 0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix the external archive error in the jSO algorithm
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix numeric underflow in ibeta
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix inverse ibeta for large values of a and b
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix variadic functions to make them safe with C++26
&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/mqtt5/"&gt;MQTT5&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed incorrect parsing of URI paths in the list of brokers (&lt;a href="https://github.com/boostorg/mqtt5/issues/31"&gt;#31&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Default Maximum Packet Size now explicitly set in the &lt;code&gt;&lt;span class="identifier"&gt;CONNECT&lt;/span&gt;&lt;/code&gt; packet. (&lt;a href="https://github.com/boostorg/mqtt5/issues/33"&gt;#33&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed high CPU usage with large Maximum Packet Size values (&lt;a href="https://github.com/boostorg/mqtt5/issues/33"&gt;#33&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/multiprecision/"&gt;Multiprecision&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Major update.&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Adds a new backend type: &lt;code&gt;&lt;span class="identifier"&gt;cpp_double_fp_backend&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes a namespace collision with Boost.Serialization
&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/mysql/"&gt;MySQL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;caching_sha2_password&lt;/span&gt;&lt;/code&gt;
authentication plugin can now be used without TLS. This is the default
in MySQL 8 and above. Plaintext connections that attempt to use this
plugin no longer fail with &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;auth_plugin_requires_ssl&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/mysql/issues/313"&gt;#313&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a problem causing &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;incomplete_message&lt;/span&gt;&lt;/code&gt;
to be returned during connection establishment when the target database
does not exist and the &lt;code&gt;&lt;span class="identifier"&gt;caching_sha2_password&lt;/span&gt;&lt;/code&gt;
is used. The appropriate server-generated diagnostic is now returned.
See issues &lt;a href="https://github.com/boostorg/mysql/issues/468"&gt;#468&lt;/a&gt; and &lt;a href="https://github.com/boostorg/mysql/issues/488"&gt;#488&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The handshake algorithm is now more resilient to protocol violations
(&lt;a href="https://github.com/boostorg/mysql/issues/469"&gt;#469&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a build failure with gcc-15 due to a missing include (&lt;a href="https://github.com/boostorg/mysql/pull/475"&gt;PR#475&lt;/a&gt;).
Thanks &lt;a href="https://github.com/hhoffstaette"&gt;hhoffstaette&lt;/a&gt;
for the PR.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;a href="https://www.boost.org/doc/libs/master/libs/mysql/doc/html/mysql/benchmarks.html"&gt;benchmarks
against the official drivers&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimized &lt;code&gt;&lt;span class="identifier"&gt;metadata&lt;/span&gt;&lt;/code&gt;
representation to be faster to construct and take less memory (&lt;a href="https://github.com/boostorg/mysql/issues/461"&gt;#461&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/pfr/"&gt;PFR&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Rewrite C++20 module following the new recommended Boost practice.
See the docs for more info.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed C++26 compilation on modern clang compilers. Thanks to &lt;a href="https://github.com/MBkkt"&gt;Valery Mironov&lt;/a&gt; for the report!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support types that use 'Arrays of Length Zero' compiler extension.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed typos. Thanks to &lt;a href="https://github.com/TryKuhn"&gt;Egor&lt;/a&gt;
for highlighting the issues!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Return &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;array&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;string_view&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt;
&lt;span class="number"&gt;0&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
type 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;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;names_as_array&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;empty_struct&lt;/span&gt;&lt;span class="special"&gt;{})&lt;/span&gt;&lt;/code&gt;
to allow compilation of &lt;code&gt;&lt;span class="keyword"&gt;for&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;string_view&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;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;names_as_array&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;empty_struct&lt;/span&gt;&lt;span class="special"&gt;{}))&lt;/span&gt;&lt;/code&gt;.
Many thanks to &lt;a href="https://github.com/sabudilovskiy"&gt;sabudilovskiy&lt;/a&gt;
for the bug report!
&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/process/"&gt;process&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;v1&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; to emulate v1 &lt;code&gt;&lt;span class="identifier"&gt;process&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; include.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix to windows path escaping
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed exit-code issue wehre terminate &amp;amp; async_wait lead to a
loss of the exit-code value.
&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/random/"&gt;Random&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix NAN being generated by &lt;code&gt;&lt;span class="identifier"&gt;beta_distribution&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve the performance of &lt;code&gt;&lt;span class="identifier"&gt;beta_distribution&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;
&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;
&lt;strong&gt;Initial support for C++20 Modules&lt;/strong&gt;.
See the docs for more info.
&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/unordered/"&gt;Unordered&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
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;unordered&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;hash_is_avalanching&lt;/span&gt;&lt;/code&gt;
is now a using-declaration 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;hash_is_avalanching&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;container_hash&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;hash_is_avalanching&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;. Use that header directly instead.
&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;unordered&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;hash_traits&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; will be removed in the future.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;pull&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;const_iterator&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;
to open-addressing containers. This operation allows for efficient
removal and retrieval of an element via move construction.
&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;
Update CMake minimum version and Python detection in CMake
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Add example on how to make an axis which accepts multiple value
types that are not implicitly convertible
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Show how to use &lt;code&gt;&lt;span class="identifier"&gt;histogram&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;fill&lt;/span&gt;&lt;/code&gt;
with a multidimensional histogram efficiently when data per
dimension is already available as contiguous data
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Don't use deprecated form of user-defined literal operator
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add support for modular build structure with b2
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed warnings in MSVC about narrowed types
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added collector accumulator, which stores all values in a bin
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Internal changes to tests and classes in detail namespace
&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_89_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/build/"&gt;Build&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Includes release of &lt;a href="https://www.boost.org/tools/build/doc/html/#_version_5_3_2"&gt;B2
version 5.3.2&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_89_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++03: 4.6.3, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
&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, C++03: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++20: 11.0.3
&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;
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
&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_89_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.88.0</title><link>https://www.boost.org/users/history/version_1_88_0.html</link><guid>https://www.boost.org/users/history/version_1_88_0.html</guid><pubDate>Thu, 10 Apr 2025 20:39:01 +0000</pubDate><description>
&lt;div id="version_1_88_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/hash2/"&gt;Hash2&lt;/a&gt;:&lt;/span&gt; An extensible hashing framework,
from Peter Dimov and Christian Mazakas.
&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/mqtt5/"&gt;MQTT5&lt;/a&gt;:&lt;/span&gt; MQTT5 client library built
on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina
Šimičević.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_88_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/array/"&gt;Array&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Converted documentation to AsciiDoc (Christian Mazakas).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; and
&lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; as appropriate.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Marked obsolete functions as deprecated.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed obsolete compiler workarounds.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;array&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="number"&gt;0&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;::&lt;/span&gt;&lt;span class="identifier"&gt;begin&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;cbegin&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;end&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;cend&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
to return &lt;code&gt;&lt;span class="keyword"&gt;nullptr&lt;/span&gt;&lt;/code&gt;, enabling
&lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt;. This matches
the behavior 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;array&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed local &lt;code&gt;&lt;span class="identifier"&gt;hash_value&lt;/span&gt;&lt;/code&gt;
overload; &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; supports array-like types
natively.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;array&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="number"&gt;0&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
can now be initialized with &lt;code&gt;&lt;span class="special"&gt;=&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="keyword"&gt;operator&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 &lt;code&gt;&lt;span class="identifier"&gt;to_array&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;
Added &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; qualifiers
to various &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;
member functions, to make it consistent with &lt;code&gt;&lt;span class="identifier"&gt;ip&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_endpoint&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed 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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;config&lt;/span&gt;&lt;/code&gt; class's handling of integer
values.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a use-after-move error in &lt;code&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;ranged_parallel_group&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an incorrect default template argument in the implementation
of &lt;code&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;promise&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the &lt;code&gt;&lt;span class="identifier"&gt;io_uring&lt;/span&gt;&lt;/code&gt;
implementation so that it does not attempt to re-register internal
descriptors with the reactor after a fork, if they were not previously
registered.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an uninitialised member in the &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;/code&gt;
default constructor.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an ambiguous overload issue that occurred when passing a &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;span&lt;/span&gt;&lt;/code&gt; to 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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;buffer&lt;/span&gt;&lt;/code&gt;
function.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed some spurious macro definitions that were left after the
removal of deprecated buffer functionality.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added documentation to clarify the use of &lt;code&gt;&lt;span class="identifier"&gt;file_base&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;flags&lt;/span&gt;&lt;/code&gt;
when opening a file.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added overview documentation on the available runtime configuration
options.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the overview documentation to reflect the use of &lt;code&gt;&lt;span class="identifier"&gt;deferred&lt;/span&gt;&lt;/code&gt; as the default completion
token.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the &lt;code&gt;&lt;span class="identifier"&gt;async_result&lt;/span&gt;&lt;/code&gt;
documentation to reflect the current type requirements placed on
specialisations of the trait.
&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;
When &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASSERT_HANDLER_IS_NORETURN&lt;/span&gt;&lt;/code&gt;
is defined, &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;assertion_failed&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;assertion_failed_msg&lt;/span&gt;&lt;/code&gt; are declared
as &lt;code&gt;&lt;span class="identifier"&gt;BOOST_NORETURN&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/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed out-of-bounds access in &lt;code&gt;&lt;span class="identifier"&gt;iequals&lt;/span&gt;&lt;/code&gt;
function.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Updated SSL examples to verify peer certificate hostname.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Refactored CMakeLists.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed Boost.Scope dependency from examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Peer pings in WebSocket now count as activity.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added new examples for Unix domain sockets.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added SSL/TLS Certificate section to documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved documentation of &lt;code&gt;&lt;span class="identifier"&gt;websocket&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;::&lt;/span&gt;&lt;span class="identifier"&gt;async_close&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;
Acknowledgements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Morten M. Neergaard
&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/conversion/"&gt;Conversion&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Use modern C++ in the samples and in the library code.
&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;
Added constructor from &lt;code&gt;&lt;span class="identifier"&gt;native_handle_t&lt;/span&gt;&lt;/code&gt;
to 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;dll&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;shared_library&lt;/span&gt;&lt;/code&gt;. Many thanks to
&lt;a href="https://github.com/tgmatos"&gt;Tiago Matos&lt;/a&gt; for the
&lt;a href="https://github.com/boostorg/dll/pull/82"&gt;PR#82&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped multiple dependencies on other Boost libraries including
Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more
lightweight for compilation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&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;error_code&lt;/span&gt;&lt;span class="special"&gt;&amp;amp;&lt;/span&gt;&lt;/code&gt;
in API is used instead of 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;system&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;. This is not a breaking change
as &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;error_code&lt;/span&gt;&lt;/code&gt; is convertible 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;error_code&lt;/span&gt;&lt;span class="special"&gt;&amp;amp;&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;dll&lt;/span&gt;&lt;span class="special"&gt;:&lt;/span&gt;&lt;span class="identifier"&gt;import_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
functions now return &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;shared_ptr&lt;/span&gt;&lt;/code&gt;
rather than &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;shared_ptr&lt;/span&gt;&lt;/code&gt;.
Define &lt;code&gt;&lt;span class="identifier"&gt;BOOST_DLL_USE_BOOST_SHARED_PTR&lt;/span&gt;&lt;/code&gt;
to restore the old behavior, however note that the macro will be
removed in one of the upcomming Boost releases.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use modern C++ in the samples and in the library code.
&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;dll&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;library_info&lt;/span&gt;&lt;/code&gt; now always throws
in case of a broken binary. Updated the docs and added some tests.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Documented in FAQ why &lt;code&gt;&lt;span class="identifier"&gt;RTLD_NODELETE&lt;/span&gt;&lt;/code&gt;
is missing and why there is no &lt;code&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;release&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
method. Provided suggestions on possible workarounds.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the information on building and using the library. CMake
targets now link with &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;ldl&lt;/span&gt;&lt;/code&gt; if it is required by the platform.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;detail&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;path_from_handle&lt;/span&gt;&lt;/code&gt; implementation
for long paths on Windows OS.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Highlighted in the docs 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;dll&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;smart_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; parts of the library are experimental
and incomplete.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed multiple mangling issues 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_&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt; parts of the 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/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/1370"&gt;PR#1370&lt;/a&gt; Relax half period check in spheroidal normalization
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1368"&gt;PR#1368&lt;/a&gt; Pass umbrella strategies in rtree spatial
predicates
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1367"&gt;PR#1367&lt;/a&gt; Improvements in traversal
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1361"&gt;PR#1361&lt;/a&gt; Test set operations on random grids with
integer coordinates
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Several test cases has been added
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use using instead of typedef in part of the code
&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/pull/1364"&gt;PR#1364&lt;/a&gt; Fix several strategies (add getters, fix
compilation error and warning)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/629"&gt;#629&lt;/a&gt; Avoid warnings for coordinate conversions and
unused parameters
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes of errors and warnings
&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/geometry/"&gt;Graph&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;
Replace implementation of &lt;code&gt;&lt;span class="identifier"&gt;maximum_weighted_matching&lt;/span&gt;&lt;/code&gt;,
resolves multiple issues.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ensure &lt;code&gt;&lt;span class="identifier"&gt;named_graph&lt;/span&gt;&lt;/code&gt;
is initialized before use.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Replace custom geometry code in &lt;code&gt;&lt;span class="identifier"&gt;is_straight_line_drawing&lt;/span&gt;&lt;/code&gt;
with Boost.Geometry, fixes incorrect results for very small
angles.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix incorrect callbacks to &lt;code&gt;&lt;span class="identifier"&gt;finish_edge&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;undirected_dfs&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;
Performance improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;adjacency_list&lt;/span&gt;&lt;/code&gt;:
Remove unnecessary calls to &lt;code&gt;&lt;span class="identifier"&gt;resize&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;reserve&lt;/span&gt;&lt;/code&gt; from within &lt;code&gt;&lt;span class="identifier"&gt;add_vertex&lt;/span&gt;&lt;/code&gt; for &lt;code&gt;&lt;span class="identifier"&gt;vector&lt;/span&gt;&lt;/code&gt;-based storage! A quick
benchmark indicates a 10% improvement to graph construction
time.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;lengauer_tarjan_dominator_tree&lt;/span&gt;&lt;/code&gt;:
Replace &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;deque&lt;/span&gt;&lt;/code&gt;
with &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;vector&lt;/span&gt;&lt;/code&gt;, obtaining a ~40%
improvement for large graphs.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
General Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Replace the use of several Boost utilities with C++14 language
features.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Modernize examples with C++14 language features.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes to documentation and build system.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;vertex_by_property&lt;/span&gt;&lt;/code&gt;
no longer requires a mutable graph.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix compilation issue with &lt;code&gt;&lt;span class="identifier"&gt;cycle_canceling&lt;/span&gt;&lt;/code&gt;
and Clang 19.
&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/iterator/"&gt;Iterator&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Dropped support for C++03 and ancient compilers, updated code base
to use C++11 and MP11, reduced usage of MPL. (&lt;a href="https://github.com/boostorg/iterator/pull/82"&gt;PR#82&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;min_category&lt;/span&gt;&lt;/code&gt;
trait, which is a variadic equivalent of &lt;code&gt;&lt;span class="identifier"&gt;minimum_category&lt;/span&gt;&lt;/code&gt;
that doesn't depend on MPL. &lt;code&gt;&lt;span class="identifier"&gt;minimum_category&lt;/span&gt;&lt;/code&gt;
is deprecated and will be removed in a future release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Extracted &lt;code&gt;&lt;span class="identifier"&gt;enable_if_convertible&lt;/span&gt;&lt;/code&gt;
trait to a separate header &lt;code&gt;&lt;span class="identifier"&gt;enable_if_convertible&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;.
The trait was previously defined in &lt;code&gt;&lt;span class="identifier"&gt;iterator_adaptor&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;,
and the header still provides &lt;code&gt;&lt;span class="identifier"&gt;enable_if_convertible&lt;/span&gt;&lt;/code&gt;
when included. This dependency is provided for backward compatibility
and will be removed in a future release. Users are advised to add
includes of &lt;code&gt;&lt;span class="identifier"&gt;enable_if_convertible&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;,
as needed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;span class="identifier"&gt;_t&lt;/span&gt;&lt;/code&gt;
variants of various iterator traits that produce types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;filter_iterator&lt;/span&gt;&lt;/code&gt; and
&lt;code&gt;&lt;span class="identifier"&gt;transform_iterator&lt;/span&gt;&lt;/code&gt;
now use empty base optimization (EBO) to reduce size of the iterator
when the adopted function object is stateless.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;zip_iterator&lt;/span&gt;&lt;/code&gt; now
natively supports &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;tuple&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;tuple&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;pair&lt;/span&gt;&lt;/code&gt;
for iterator tuples and doesn't need including Fusion support headers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;function_output_iterator&lt;/span&gt;&lt;/code&gt;
no longer allows default construction when the wrapped function is
a function pointer. Such construction would previously create an
iterator with an uninitialized function pointer value, and such an
iterator would be unusable.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;generator_iterator&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;shared_container_iterator&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
headers were moved under 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;iterator&lt;/span&gt;&lt;/code&gt;
directory. The previous headers in &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;/code&gt;
are still retained for backward compatibility, but will be removed
in a future release. Users are advised to update their includes.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;shared_container_iterator&lt;/span&gt;&lt;/code&gt;
now uses &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;shared_ptr&lt;/span&gt;&lt;/code&gt; to reference the container
internally. The support 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;shared_ptr&lt;/span&gt;&lt;/code&gt;
is still retained, but it will incur performance overhead on the
iterator construction, as &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;shared_ptr&lt;/span&gt;&lt;/code&gt;
is now wrapped in a &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;shared_ptr&lt;/span&gt;&lt;/code&gt;
internally. It is recommended to use &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;shared_ptr&lt;/span&gt;&lt;/code&gt;
to reference the container.
&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/locale/"&gt;Locale&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Raised required ICU version to at least 4.8.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped support for ICU 50.1
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed parsing of integers with input strings in floating point format
(&lt;a href="https://github.com/boostorg/locale/pull/241"&gt;PR#241&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support parsing and formatting of &lt;code&gt;&lt;span class="identifier"&gt;uint64_t&lt;/span&gt;&lt;/code&gt;
values with the ICU backend (&lt;a href="https://github.com/boostorg/locale/pull/246"&gt;PR#246&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support &lt;code&gt;&lt;span class="identifier"&gt;char8_t&lt;/span&gt;&lt;/code&gt; on
more platforms
&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/lockfree/"&gt;Lockfree&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added new spsc_value, a lockfree single-producer single-consumer
value based on a triple-buffer
&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;
Disabled usage 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;codecvt&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="keyword"&gt;char16_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;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;codecvt&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="keyword"&gt;char32_t&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; locale facets in C++20 and later
modes as they were deprecated in C++20. This means character code
conversions to/from &lt;code&gt;&lt;span class="keyword"&gt;char16_t&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="keyword"&gt;char32_t&lt;/span&gt;&lt;/code&gt; is no longer
available in C++20 and later.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed building issues when using CMake and MinGW-w64. (&lt;a href="https://github.com/boostorg/log/pull/241"&gt;PR#241&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed incorrect file counter used by &lt;code&gt;&lt;span class="identifier"&gt;text_file_backend&lt;/span&gt;&lt;/code&gt;
when the backend was configured to append to an existing file and
the actively written file name pattern didn't have a counter placeholder
but the target file name pattern did, and the log files were written
directly into the target storage. (&lt;a href="https://github.com/boostorg/log/issues/245"&gt;#245&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/mp11/"&gt;Mp11&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;mp_from_sequence&lt;/span&gt;&lt;/code&gt;
for non-integral values (accidentally broken in 1.83.0 due to offset
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/mysql/"&gt;MySQL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt; now
resizes correctly even in the presence of many connections with session
establishment in-progress. The old algorithm could lead to the pool
not being resized as expected under certain conditions (&lt;a href="https://github.com/boostorg/mysql/issues/395"&gt;#395&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;connection_id&lt;/span&gt;&lt;/code&gt;.
This function retrieves the connection's ID, which can subsequently
be used in &lt;code&gt;&lt;span class="identifier"&gt;KILL&lt;/span&gt;&lt;/code&gt; SQL
statements to cancel queries. This function is equivalent to &lt;code&gt;&lt;span class="identifier"&gt;mysql_thread_id&lt;/span&gt;&lt;/code&gt; in the official
C API (&lt;a href="https://github.com/boostorg/mysql/issues/408"&gt;#408&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Attempting to start an async operation on a &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
while another operation is in-progress no longer triggers undefined
behavior. It now fails with &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;operation_in_progress&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/mysql/issues/405"&gt;#405&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Attempting to start an operation while a &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
are engaged in a multi-function operation no longer yields potentially
dangerous packet mismatches. It instead fails with &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;engaged_in_multi_function&lt;/span&gt;&lt;/code&gt; (&lt;a href="https://github.com/boostorg/mysql/issues/448"&gt;#448&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved diagnostics when attempting to use a connection without
a established session. Operations now fail with &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;not_connected&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/mysql/issues/450"&gt;#450&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a race condition in &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
regarding per-operation cancellation. In previous versions, if a
cancellation signal was emitted after an intermediate async operation
had completed, but before its handler had been called, the signal
was ignored. This is no longer the case (&lt;a href="https://github.com/boostorg/mysql/issues/199"&gt;#199&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;field&lt;/span&gt;&lt;/code&gt;'s constructor
and assignment 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;string_view&lt;/span&gt;&lt;/code&gt;
are now available in C++17, rather than C++20. These functions were
guarded by standard feature-test macros, only available in C++20.
These have been replaced by their Boost.Config equivalents.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added an HTTP server example that uses C++20 coroutines.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a doc page on interfacing sync and async code. This replaces
the synchronous connection pool snippet, which contained a race condition.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved some of the other examples and doc pages.
&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;
Make &lt;code&gt;&lt;span class="identifier"&gt;getenv&lt;/span&gt;&lt;/code&gt; thread-safe
(&lt;a href="https://github.com/boostorg/nowide/pull/191"&gt;PR#191&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;
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;variant_collection&lt;/span&gt;&lt;/code&gt;, a closed polymorphic
collection similar in behavior 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;vector&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;variant&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;...&amp;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/smart_ptr/"&gt;SmartPtr&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix &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;
for wide streams (accidentally broken in 1.87.0)
&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;
Use &lt;code&gt;&lt;span class="identifier"&gt;GetModuleNames&lt;/span&gt;&lt;/code&gt;
to determine the full module path for MSVC implementation. Many thanks
to &lt;a href="https://github.com/Dani-Hub"&gt;Daniel Krügler&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/stacktrace/pull/198"&gt;PR#198&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Print relative addresses to allow their decoding later without knowing
the base address. The logic could be disabled by defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE&lt;/span&gt;&lt;/code&gt;.
Many thanks to &lt;a href="https://github.com/McCzarny"&gt;Maciej Czarnecki&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/stacktrace/pull/200"&gt;PR#200&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Expose all the stacktrace libraries as b2 features for better control
over the build and explicit information on what libraries are built.
See "Configuration and Build" section for more info. Many
thanks to &lt;a href="https://github.com/uilianries"&gt;Uilian Ries&lt;/a&gt;
for initial implementation of the feature in &lt;a href="https://github.com/boostorg/stacktrace/pull/202"&gt;PR#202&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;stacktrace_from_exception&lt;/span&gt;&lt;/code&gt;
builds with MinGW. Thanks to &lt;a href="https://github.com/crhilton"&gt;crhilton&lt;/a&gt;
for the fix.
&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;
Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented
the library from building on clang-20.
&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/unordered/"&gt;Unordered&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Migrated the documentation to a multipage format using Antora.
&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;
Use the smallest appropriate unsigned type for the index.
&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_88_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++03: 4.6.3, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
&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, C++03: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++20: 11.0.3
&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;
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
&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_88_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.87.0</title><link>https://www.boost.org/users/history/version_1_87_0.html</link><guid>https://www.boost.org/users/history/version_1_87_0.html</guid><pubDate>Thu, 12 Dec 2024 00:52:33 +0000</pubDate><description>
&lt;div id="version_1_87_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/parser/"&gt;Parser&lt;/a&gt;:&lt;/span&gt; Framework for building
parsers, from Zach Laine.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_87_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 support for using byte spans and sequences of byte spans as
buffer sequences. This means that they can be passed directly to
I/O operations such as &lt;code&gt;&lt;span class="identifier"&gt;async_read&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for generic dispositions, which are types that can
be used to test whether an asynchronous operation completed without
error. This includes &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;exception_ptr&lt;/span&gt;&lt;/code&gt;,
but can be extended to user types via specialisation of the &lt;code&gt;&lt;span class="identifier"&gt;disposition_traits&lt;/span&gt;&lt;/code&gt; class template.
The standard types &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;
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;exception_ptr&lt;/span&gt;&lt;/code&gt; are recognised as
dispositions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added disposition support to 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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;use_future&lt;/span&gt;&lt;/code&gt;
completion token, &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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;awaitable&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;-based coroutines, &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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;spawn&lt;/span&gt;&lt;span class="special"&gt;()&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;asio&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;cancellation_condition&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;execution_context&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;service_maker&lt;/span&gt;&lt;/code&gt;
abstract base class. A &lt;code&gt;&lt;span class="identifier"&gt;service_maker&lt;/span&gt;&lt;/code&gt;
is an object that is passed to an execution context's constructor,
and allows services to be added at context construction time.
&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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;config&lt;/span&gt;&lt;/code&gt;, which provides access to
configuration parameters that are associated with an execution context.
The class is intended for use by asio internals, or by libraries
or user-provided abstractions that build on top of asio, and will
typically be used to fine tune behaviour, such as enabling or disabling
certain optimisations. A concrete configuration source, such as
&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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;config_from_env&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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;config_from_concurrency_hint&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;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;config_from_string&lt;/span&gt;&lt;/code&gt;, may be passed
to the &lt;code&gt;&lt;span class="identifier"&gt;io_context&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;/code&gt; constructor.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added an initial set of configuration parameters recognised by Asio's
&lt;code&gt;&lt;span class="identifier"&gt;io_context&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;/code&gt; implementations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed some previously deprecated facilities.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Deprecated &lt;code&gt;&lt;span class="identifier"&gt;basic_io_object&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;deadline_timer&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added rvalue-qualified &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; overloads to associating binders.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for modular build structure.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;spawn&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
of functions that return move-only types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;co_composed&lt;/span&gt;&lt;/code&gt;
to not require concepts support.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the epoll reactor to not try to re-register regular file descriptors
after fork.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a leak in &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;detail&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;engine&lt;/span&gt;&lt;/code&gt;
move assignment.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compile error when &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING&lt;/span&gt;&lt;/code&gt;
is defined.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compile error when using Clang 19.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;join&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; to ensure that it stops threads
that are subsequently added to the pool using &lt;code&gt;&lt;span class="identifier"&gt;thread_pool&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;attach&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;
Fixed the offsets passed to &lt;code&gt;&lt;span class="identifier"&gt;io_uring_prep_write_fixed&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;io_uring_prep_read_fixed&lt;/span&gt;&lt;/code&gt;,
when they are used for stream-oriented operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Consult the &lt;a href="https://www.boost.org/doc/libs/1_87_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;
Fixed initialization of atomic wait state list on memory reallocation.
(&lt;a href="https://github.com/boostorg/atomic/issues/72"&gt;#72&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/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
API Changes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
overload for &lt;code&gt;&lt;span class="identifier"&gt;basic_fields&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;insert&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 overload for &lt;code&gt;&lt;span class="identifier"&gt;websocket&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;::&lt;/span&gt;&lt;span class="identifier"&gt;get_status&lt;/span&gt;&lt;/code&gt;
to query permessage-deflate status.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed use-after-move in calls to &lt;code&gt;&lt;span class="identifier"&gt;net&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;dispatch&lt;/span&gt;&lt;/code&gt;
within &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_stream&lt;/span&gt;&lt;/code&gt;,
which caused &lt;code&gt;&lt;span class="identifier"&gt;bad_executor&lt;/span&gt;&lt;/code&gt;
exceptions on timeouts.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed mutating operations in initiating functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed cancellation handling in &lt;code&gt;&lt;span class="identifier"&gt;teardown_tcp_op&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Set &lt;code&gt;&lt;span class="identifier"&gt;state_&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;basic_parser&lt;/span&gt;&lt;/code&gt;
before calling &lt;code&gt;&lt;span class="identifier"&gt;on_finish_impl&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed static specifier from &lt;code&gt;&lt;span class="identifier"&gt;clamp&lt;/span&gt;&lt;/code&gt;
functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Addressed &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wattributes&lt;/span&gt;&lt;/code&gt;
warnings in tests.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Addressed unreachable code warning in tests.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added forward declaration headers for types in &lt;code&gt;&lt;span class="identifier"&gt;beast&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;/code&gt; namespace
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parser&lt;/span&gt;&lt;/code&gt;
to use &lt;code&gt;&lt;span class="identifier"&gt;basic_fields&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;insert&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; with &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
overload
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Applied &lt;code&gt;&lt;span class="identifier"&gt;header_limit_&lt;/span&gt;&lt;/code&gt;
in &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_parser&lt;/span&gt;&lt;/code&gt; to trailer headers
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_parser&lt;/span&gt;&lt;/code&gt;
to return &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;error&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;header_limit&lt;/span&gt;&lt;/code&gt;
earlier
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for modular boost build structure
&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;
Jackarain, Saleh Hatefinya, René Ferdinand Rivera Morell
&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/charconv"&gt;Charconv&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed support for PPC64LE architecture using &lt;code&gt;&lt;span class="identifier"&gt;__ibm128&lt;/span&gt;&lt;/code&gt;
as long double format
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed intrinsic usage with Windows ARM64 platform
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed formatting of fixed with specified precision using &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;float128_t&lt;/span&gt;&lt;/code&gt; or &lt;code&gt;&lt;span class="identifier"&gt;__float128&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/cobalt"&gt;Cobalt&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Removed requirement for get_executor to return a const ref
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added experimental/composition.
&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/compat/"&gt;Compat&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;to_array&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; (contributed by Ruben Perez
Hidalgo.)
&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;
Added &lt;code&gt;stored_size&lt;/code&gt;
option to &lt;code&gt;&lt;span class="identifier"&gt;static_vector&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;small_vector&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bugs/issues:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/261"&gt;GitHub
#261: &lt;em&gt;"End iterators are not dereferencable"&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/288"&gt;GitHub
#288: &lt;em&gt;"Compile error when using flat_map::extract_sequence
with small_vector"&lt;/em&gt;&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/filesystem/"&gt;Filesystem&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
As was announced in 1.84.0, Windows versions prior to 10 are no longer
supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, &lt;code&gt;&lt;span class="identifier"&gt;canonical&lt;/span&gt;&lt;/code&gt;
is now based on the &lt;code&gt;&lt;span class="identifier"&gt;GetFinalPathNameByHandleW&lt;/span&gt;&lt;/code&gt;
WinAPI function. As a side effect, drive letters are converted to
upper case, which makes the resulting paths more interoperable. (&lt;a href="https://github.com/boostorg/filesystem/issues/325"&gt;#325&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;v4:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;canonical&lt;/span&gt;&lt;/code&gt;
no longer produces a trailing directory separator in the resulting
path, if the input path has one.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
If a &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt; constructor
or member function is called with an argument of a user-defined type
that is convertible to &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
and one or more &lt;code&gt;&lt;span class="identifier"&gt;Source&lt;/span&gt;&lt;/code&gt;
types, the conversion to &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
is now chosen by default. This may resolve argument conversion ambiguities
in some cases, but may also result in a less optimal conversion path.
If a different conversion path is desired, users are recommended
to use explicit type casts. (&lt;a href="https://github.com/boostorg/filesystem/issues/326"&gt;#326&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a workaround for &lt;code&gt;&lt;span class="identifier"&gt;dirfd&lt;/span&gt;&lt;/code&gt;
being a macro on FreeBSD 9 and older. (&lt;a href="https://github.com/boostorg/filesystem/issues/328"&gt;#328&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;
Added &lt;a href="https://www.boost.org/libs/flyweight/doc/tutorial/configuration.html#concurrent_factory"&gt;&lt;code&gt;&lt;span class="identifier"&gt;concurrent_factory&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;, a factory
based on a concurrent container from &lt;a href="https://www.boost.org/libs/unordered/"&gt;Boost.Unordered&lt;/a&gt;
that provides excellent performance in multithreaded scenarios.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Marked as &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; those
&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;flyweight&lt;/span&gt;&lt;/code&gt; operations previously
documented as not throwing (issue &lt;a href="https://github.com/boostorg/flyweight/issues/15"&gt;#15&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/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;
Use using instead of typedef in part of the code
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Modernize meta function with alias in part of the code
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add support for modular build structure
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Complete CMake coverage (added github actions cmake tests)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve documentation workflow
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Update Qt end WxWidgets examples
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add enumerate to prepare for 17 and 23
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Breaking changes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Remove deprecated rescaling code
&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/1309"&gt;#1309&lt;/a&gt; Fix some missing qbk includes
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1226"&gt;#1226&lt;/a&gt; &lt;a href="https://github.com/boostorg/geometry/issues/1326"&gt;#1326&lt;/a&gt; Fix extra round on ring
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1293"&gt;#1293&lt;/a&gt; &lt;a href="https://github.com/boostorg/geometry/issues/1294"&gt;#1294&lt;/a&gt; &lt;a href="https://github.com/boostorg/geometry/issues/1295"&gt;#1295&lt;/a&gt; Fix traversal
through non clustered rings
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/893"&gt;#893&lt;/a&gt; &lt;a href="https://github.com/boostorg/geometry/issues/1299"&gt;#1299&lt;/a&gt; Fix blocking rings for non
union conditions
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1342"&gt;#1342&lt;/a&gt; Fix discarding a start turn for combination
with touch
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1288"&gt;#1288&lt;/a&gt; &lt;a href="https://github.com/boostorg/geometry/issues/1345"&gt;#1345&lt;/a&gt; Fixes in handling (imperfect)
touch
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1279"&gt;#1279&lt;/a&gt; Fix covered_by incorrect results
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes of errors and warnings
&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/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;function_output_iterator&lt;/span&gt;&lt;/code&gt;
is now compliant with &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;output_iterator&lt;/span&gt;&lt;/code&gt;
concept. (&lt;a href="https://github.com/boostorg/iterator/issues/85"&gt;#85&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;
Decreased number of Boost dependencies from 11 (in total) to 7.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Deprecated &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;interprocess&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;containers&lt;/span&gt;&lt;span class="comment"&gt;/*.hpp&amp;gt;&lt;/span&gt;&lt;/code&gt; headers. They were the
original source of &lt;strong&gt;Boost.Container&lt;/strong&gt;
in 2011, but no longer maintained. As a long transition, Boost.Interprocess
has maintained those headers for compatibility. They will be removed
in a future Boost release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Some workarounds for Cygwin were added. Regression tests now work
on Cygwin64.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;ABI breaking&lt;/strong&gt;: &lt;code&gt;&lt;span class="identifier"&gt;segment_manager&lt;/span&gt;&lt;/code&gt;
nows uses a new implementation that supports overaligned types and
fixes some existing bugs. You can obtain the pre-Boost 1.87 ABI #defining
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_INTERPROCESS_SEGMENT_MANAGER_ABI&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="number"&gt;1&lt;/span&gt;&lt;/code&gt; before including
Boost.Interprocess headers.
&lt;/div&gt;
&lt;/li&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/interprocess/issues/152"&gt;GitHub
#152 (&lt;em&gt;"Handle EINTR in shared_memory_object"&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/issues/173"&gt;GitHub
#173 (&lt;em&gt;"Managed shared memory segment value not
aligned"&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/issues/192"&gt;GitHub
#192 (&lt;em&gt;"managed_windows_shared_memory crash on
destruction"&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/issues/199"&gt;GitHub
#199 (&lt;em&gt;"missing/misused m_is_wide in char_wchar_holder
assignment operators"&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/issues/210"&gt;GitHub
#210 (&lt;em&gt;"Bug in boost::interprocess::ipcdetail::sync_handles::obtain_mutex"&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/issues/215"&gt;GitHub
#215 (&lt;em&gt;"Alignment problem with boost/interprocess/segment_manager
on SPARC 32Bit"&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/issues/217"&gt;GitHub
#217 (&lt;em&gt;"managed_map_file find_or_construct does
not return Cache aligned memory"&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/issues/230"&gt;GitHub
#230 (&lt;em&gt;"&lt;code&gt;&lt;span class="identifier"&gt;interprocess&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;ipcdetail&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;intermodule_singleton&lt;/span&gt;&lt;/code&gt;
not working on MinGW"&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/issues/236"&gt;GitHub
#236 (&lt;em&gt;"&lt;code&gt; &lt;span class="identifier"&gt;Floating&lt;/span&gt;
&lt;span class="identifier"&gt;point&lt;/span&gt; &lt;span class="identifier"&gt;inaccuracies&lt;/span&gt;
&lt;span class="identifier"&gt;in&lt;/span&gt; &lt;/code&gt;get_current_process_creation_time&lt;code&gt;
&lt;span class="identifier"&gt;lead&lt;/span&gt; &lt;span class="identifier"&gt;to&lt;/span&gt;
&lt;/code&gt;intermodule_singleton` failures"&lt;/em&gt;)&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/json/"&gt;JSON&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Direct serialization.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add GDB pretty printers for Boost.JSON types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Conversion into structs ignores unknown keys.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Exception wrapping behaviour for &lt;code&gt;&lt;span class="identifier"&gt;value_to&lt;/span&gt;&lt;/code&gt;
is simplified.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Deprecated initilaizer list behavior was removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Deprecated type aliases were removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use correct 64bit full multiplication for MinGW on ARM64.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix parse_into handling of tuple of the wrong size.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Check for input size larger than allowed size of sequence.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix &lt;code&gt;&lt;span class="identifier"&gt;value_ref&lt;/span&gt;&lt;/code&gt; segfaulting
on GCC 14.
&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;
Dropped dependency on Boost.Integer, leading to better compile times.
&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;
Replaced Boost.Thread synchronization primitives with equivalents
from the C++ standard library. This may improve multithreaded performance,
but also has user-facing consequences:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Thread thread interruption is no longer supported. Boost.Log
no longer has special treatment for the &lt;code&gt;&lt;span class="identifier"&gt;thread_interrupted&lt;/span&gt;&lt;/code&gt;
exception that is used by Boost.Thread to implement thread
interruption. This exception will be handled like any other
exception. In particular, user-specified exception handlers
may now be invoked with the &lt;code&gt;&lt;span class="identifier"&gt;thread_interrupted&lt;/span&gt;&lt;/code&gt;
pending exception.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
For timed waiting operations, timeouts are now using std::chrono
time units. This means that the &lt;code&gt;&lt;span class="identifier"&gt;ordering_window&lt;/span&gt;&lt;/code&gt;
named parameter that is supported by the &lt;code&gt;&lt;span class="identifier"&gt;bounded_ordering_queue&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;unbounded_ordering_queue&lt;/span&gt;&lt;/code&gt;
classes now expects an &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;chrono&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;duration&lt;/span&gt;&lt;/code&gt;
value 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;posix_time&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;time_duration&lt;/span&gt;&lt;/code&gt;
from Boost.DateTime.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In case of errors indicated by thread synchronization primitives,
&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; exception is
thrown instead of Boost.Thread exception types.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for C++ standard library lock types to &lt;code&gt;&lt;span class="identifier"&gt;strictest_lock&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/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Major update.&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Many special functions, and distribuitions now support CUDA (NVCC
and NVRTC) and SYCL
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added mapairy, holtsmark, and saspoint5 distibutions, see &lt;a href="https://github.com/boostorg/math/pull/1163"&gt;1163&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added landau distibution, see &lt;a href="https://github.com/boostorg/math/pull/1159"&gt;1159&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed unexpected exception in beta quantile, see &lt;a href="https://github.com/boostorg/math/issues/1169"&gt;1169&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/move/index.html"&gt;Move&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/move/issues/56"&gt;Git
Issue #56: &lt;em&gt;"Forward declarations of std types
cause compilation errors on some platforms"&lt;/em&gt;&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/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_lambda&lt;/span&gt;&lt;/code&gt; (contributed
by Joaquin M Lopez Munoz)
&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;
Make &lt;code&gt;&lt;span class="identifier"&gt;float128&lt;/span&gt;&lt;/code&gt; trivially
copyable
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Make &lt;code&gt;&lt;span class="identifier"&gt;__float128&lt;/span&gt;&lt;/code&gt; a
floating point type even in non-GNU modes
&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/mysql/"&gt;MySQL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Breaking changes to experimental APIs&lt;/strong&gt;:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The thread-safety feature in &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt;
has been redesigned to overcome some design flaws found by
user experience. The boolean option &lt;code&gt;&lt;span class="identifier"&gt;thread_safe&lt;/span&gt;&lt;/code&gt;
has been added to &lt;code&gt;&lt;span class="identifier"&gt;pool_params&lt;/span&gt;&lt;/code&gt;
(set to &lt;code&gt;&lt;span class="keyword"&gt;false&lt;/span&gt;&lt;/code&gt;
by default). When set, some pool functions change behavior
so they can be safely used concurrently. This works by internally
creating a strand, dispatching to it when required, and re-wiring
cancellation signals. When &lt;code&gt;&lt;span class="identifier"&gt;pool_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;thread_safe&lt;/span&gt;&lt;/code&gt;
is &lt;code&gt;&lt;span class="keyword"&gt;false&lt;/span&gt;&lt;/code&gt;, the
usual Asio executor semantics apply, with no overhead.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;pool_executor_params&lt;/span&gt;&lt;/code&gt;
has been removed, replaced by &lt;code&gt;&lt;span class="identifier"&gt;pool_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;connection_executor&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;pool_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;thread_safe&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The built-in timeout functionality in &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;async_get_connection&lt;/span&gt;&lt;/code&gt;
has been completely removed. This function now supports per-operation
cancellation, so the same functionality can be achieved by
using &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;cancel_after&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Destroying a &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt;
now cancels outstanding async operations, as other Asio I/O
objects do. This prevents resource leaks: an outstanding &lt;code&gt;&lt;span class="identifier"&gt;async_run&lt;/span&gt;&lt;/code&gt; operation extends
the pool's lifetime until the operation completes, which could
cause the pool object to never get destroyed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
When an &lt;code&gt;&lt;span class="identifier"&gt;async_get_connection&lt;/span&gt;&lt;/code&gt;
operation is cancelled before a connection is available, the
operation now consistently fails with &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;pool_not_running&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;no_connection_available&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;pool_cancelled&lt;/span&gt;&lt;/code&gt;,
depending on the pool state (previously, it would fail with
either &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;timeout&lt;/span&gt;&lt;/code&gt;
or the last error code encountered by the internal &lt;code&gt;&lt;span class="identifier"&gt;async_connect&lt;/span&gt;&lt;/code&gt; operations
performed by the pool). This information is now included in
the output diagnostics object.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;timeout&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;client_errc&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;cancelled&lt;/span&gt;&lt;/code&gt;
have been removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Calling &lt;code&gt;&lt;span class="identifier"&gt;async_get_connection&lt;/span&gt;&lt;/code&gt;
on a pool that is not running no longer fails immediately,
but waits for &lt;code&gt;&lt;span class="identifier"&gt;async_run&lt;/span&gt;&lt;/code&gt;
to be called.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;sequence&lt;/span&gt;&lt;/code&gt; now
returns an owning type. This makes it safe use with &lt;code&gt;&lt;span class="identifier"&gt;with_params&lt;/span&gt;&lt;/code&gt; in deferred async
operations. &lt;code&gt;&lt;span class="identifier"&gt;format_sequence_view&lt;/span&gt;&lt;/code&gt;
has been renamed to &lt;code&gt;&lt;span class="identifier"&gt;format_sequence&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;sequence&lt;/span&gt;&lt;/code&gt; has
been moved to a separate 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;mysql&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;sequence&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;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;, client-side
SQL formatting (including &lt;code&gt;&lt;span class="identifier"&gt;format_sql&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;with_params&lt;/span&gt;&lt;/code&gt;)
and &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt;
have been promoted to stable APIs.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt; is
now recommended for new code, instead of &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
and its aliases &lt;code&gt;&lt;span class="identifier"&gt;tcp_connection&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;tcp_ssl_connection&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;unix_connection&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;with_params&lt;/span&gt;&lt;/code&gt;,
a new &lt;code&gt;&lt;span class="identifier"&gt;ExecutionRequest&lt;/span&gt;&lt;/code&gt;
encapsulating a query template string and parameters to expand the
query. When executed, it expands the query using client-side SQL
formatting and sends it to the server for execution. This is the
new recommended way to run simple queries with parameters.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;with_diagnostics&lt;/span&gt;&lt;/code&gt;,
an adapter completion token that transforms exceptions thrown by
async functions to include &lt;code&gt;&lt;span class="identifier"&gt;diagnostics&lt;/span&gt;&lt;/code&gt;
objects, matching how sync throwing functions work.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;with_diagnostics&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;asio&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;deferred&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; is now the default completion token
for all operations in &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt;.
This causes expressions like &lt;code&gt;&lt;span class="identifier"&gt;co_await&lt;/span&gt;
&lt;span class="identifier"&gt;conn&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;params&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;
to behave identically to &lt;code&gt;&lt;span class="identifier"&gt;conn&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;connect&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;params&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;. Note that &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
and its type aliases haven't been updated to match this behavior.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Async functions in &lt;code&gt;&lt;span class="identifier"&gt;connection_pool&lt;/span&gt;&lt;/code&gt;
now support per-operation cancellation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All async operations now support &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;cancel_after&lt;/span&gt;&lt;/code&gt;,
&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;cancel_at&lt;/span&gt;&lt;/code&gt; and similar completion
tokens that require a bound executor to initiations passed to &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;async_initiate&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;connection&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt; now dispatch immediate
completions through the token's immediate executor.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an issue that caused a crash when trying to use an &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt; that hasn't been
previously connected.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed an incorrect &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt;
specifier from a potentially throwing constructor in &lt;code&gt;&lt;span class="identifier"&gt;field&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an issue that could cause the write buffer size to exceed the
configured buffer size limit.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Heavily updated the documentation and examples to be more relevant
and reflect the new recommended best practices.
&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/optional/"&gt;Optional&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Breaking change.&lt;/strong&gt; Dropped support
for C++03. C++11 is now the required minimum; at least some C++11
features.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.Utility.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.Predef.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.StaticAssert.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.Move.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
A bit faster implementation of some relational operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Warning.&lt;/strong&gt; In the future releases
we intend to introduce the range interface into &lt;code&gt;&lt;span class="identifier"&gt;optional&lt;/span&gt;&lt;/code&gt;,
so that &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;ranges&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;range&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;optional&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;&amp;gt;&lt;/span&gt;&lt;/code&gt;
will be &lt;code&gt;&lt;span class="keyword"&gt;true&lt;/span&gt;&lt;/code&gt;. This may
affect the overload resolution in programs that make decisions based
on predicates such as &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;ranges&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;range&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Tags &lt;code&gt;&lt;span class="identifier"&gt;in_place_init&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;in_place_init_if&lt;/span&gt;&lt;/code&gt;
become &lt;code&gt;&lt;span class="keyword"&gt;inline&lt;/span&gt; &lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt;
and therewith leave smaller footprint in the executable. This addresses
&lt;a href="https://github.com/boostorg/optional/issues/103"&gt;issue
#103&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/pfr/"&gt;PFR&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;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;for_each_field_with_name&lt;/span&gt;&lt;/code&gt; function
was added. Many thanks to &lt;a href="https://github.com/Baduit"&gt;Lena&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/pfr/pull/171"&gt;PR#171&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Significant&lt;/strong&gt; compilation time improvement
for structures with big size and small fields count. Many thanks
to &lt;a href="https://github.com/runer112"&gt;Zachary Wassall&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/pfr/pull/120"&gt;PR#120&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;pragma&lt;/span&gt;&lt;/code&gt; directives.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Initial support for C++20 Modules&lt;/strong&gt;.
See the docs for more info.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix unused variable warnings in core_name14_disabled.hpp. Thanks
to &lt;a href="https://github.com/anarthal"&gt;Anarthal (Rubén Pérez)&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/pfr/pull/183"&gt;PR#183&lt;/a&gt; and &lt;a href="https://github.com/boostorg/pfr/pull/187"&gt;PR#187&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Default limit for fields count in aggregate in C++17 was raised from
100 to 200.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed warning about GCC not being aware of the -Wundefined-var-template.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Multiple minor improvement for compilation time.
&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/process"&gt;Process&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
(v2) Implemented cancellation of async_wait on windows.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v2) Added FORCE_DISABLE_CLOSE_RANGE
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v2) ext: Multiple ext fixes for BSD &amp;amp; Solaris.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v2) unavailable &lt;code&gt;&lt;span class="identifier"&gt;ext&lt;/span&gt;&lt;/code&gt;
functions now compile and give an &lt;code&gt;&lt;span class="identifier"&gt;operation_not_supported&lt;/span&gt;&lt;/code&gt;
error (includes IOS)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v2) multiple link fixes
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v2) removed filesystem from the linked library - which filsystem
library is used only affects header files now
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
(v1) Added deprecation notice for 1.88.
&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;
C++03 is no longer supported, a C++11 compiler is required. This
includes GCC 4.8 or later, and MSVC 14.0 or later.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The functionality enabled by the macros &lt;code&gt;&lt;span class="identifier"&gt;BOOST_SP_ENABLE_DEBUG_HOOKS&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_SP_USE_STD_ALLOCATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_SP_USE_QUICK_ALLOCATOR&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_AC_USE_SPINLOCK&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_AC_USE_PTHREADS&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_SP_USE_SPINLOCK&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;BOOST_SP_USE_PTHREADS&lt;/span&gt;&lt;/code&gt;
has been deprecated and support for it 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;
&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;
&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;stacktrace_from_exception&lt;/span&gt;&lt;/code&gt; CMake
target was added. Many thanks to &lt;a href="https://github.com/void-mian"&gt;int
mian&lt;/a&gt; for the &lt;a href="https://github.com/boostorg/stacktrace/pull/189"&gt;PR#189&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Don't export &lt;code&gt;&lt;span class="identifier"&gt;boost_stacktrace_impl_return_nullptr&lt;/span&gt;&lt;/code&gt;
for static build on MSVC. Many thanks to &lt;a href="https://github.com/huangqinjin"&gt;huangqinjin&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/stacktrace/pull/186"&gt;PR#186&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed autolinking with &lt;code&gt;&lt;span class="identifier"&gt;ole32&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;lib&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;Dbgeng&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;lib&lt;/span&gt;&lt;/code&gt; while using clang under Windows
OS.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed missing namespace in docs. Thanks to &lt;a href="https://github.com/meastp"&gt;Mats
Taraldsvik&lt;/a&gt; for the &lt;a href="https://github.com/boostorg/stacktrace/pull/181"&gt;PR#181&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed missing include 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;exception&lt;/span&gt;&lt;/code&gt;.
Thanks to &lt;a href="https://github.com/jschueller"&gt;Julien Schueller&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/stacktrace/pull/178"&gt;PR#178&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed type conversions errors reported by GCC. Thanks to &lt;a href="https://github.com/jplcz"&gt;agent_J&lt;/a&gt;
for the &lt;a href="https://github.com/boostorg/stacktrace/pull/175"&gt;PR#175&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed setting B2 &lt;code&gt;&lt;span class="identifier"&gt;from_exception&lt;/span&gt;&lt;/code&gt;
feature from CLI. Thanks to &lt;a href="https://github.com/grisumbras"&gt;Dmitry
Arkhipov&lt;/a&gt; for the &lt;a href="https://github.com/boostorg/stacktrace/pull/194"&gt;PR#194&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/stl_interfaces/"&gt;STLInterfaces&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct misdocumented requirements for sequence container &lt;code&gt;&lt;span class="identifier"&gt;swap&lt;/span&gt;&lt;/code&gt;; the expected return type
is &lt;code&gt;&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;/code&gt;, not &lt;code&gt;&lt;span class="keyword"&gt;bool&lt;/span&gt;&lt;/code&gt;. (&lt;a href="https://github.com/boostorg/stl_interfaces/issues/71"&gt;#71&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add &lt;code&gt;&lt;span class="special"&gt;[[&lt;/span&gt;&lt;span class="identifier"&gt;no_unique_address&lt;/span&gt;&lt;span class="special"&gt;]]&lt;/span&gt;&lt;/code&gt; to the data members of the adaptors
in &lt;code&gt;&lt;span class="identifier"&gt;view_adaptor&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/stl_interfaces/issues/65"&gt;#65&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enable deducing &lt;code&gt;&lt;span class="keyword"&gt;this&lt;/span&gt;&lt;/code&gt;
for recent versions of Clang and MSVC that support it, but do not
advertise that support via &lt;code&gt;&lt;span class="identifier"&gt;__cpp_explicit_this_parameter&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/stl_interfaces/pull/68"&gt;PR#68&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/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed support for clang tidy with dummy conditions &lt;a href="https://github.com/boostorg/test/pull/348"&gt;PR#348&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed dynamic linking with clang &lt;a href="https://github.com/boostorg/test/pull/431"&gt;PR#431&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/unordered/"&gt;Unordered&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Major update.&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added concurrent, node-based containers &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;concurrent_node_map&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;concurrent_node_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;insert_and_visit&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;x&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;f1&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;f2&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; and similar operations to concurrent
containers, which allow for visitation of an element right after
insertion (by contrast, &lt;code&gt;&lt;span class="identifier"&gt;insert_or_visit&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;x&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;f&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; only visits the element if insertion
did &lt;em&gt;not&lt;/em&gt; take place).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Made visitation exclusive-locked within certain &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;concurrent_flat_set&lt;/span&gt;&lt;/code&gt;
operations to allow for safe mutable modification of elements (&lt;a href="https://github.com/boostorg/unordered/pull/265"&gt;PR#265&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In Visual Studio Natvis, supported any container with an allocator
that uses fancy pointers. This applies to any fancy pointer type,
as long as the proper Natvis customization point "Intrinsic"
functions are written for the fancy pointer type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added GDB pretty-printers for all containers and iterators. For a
container with an allocator that uses fancy pointers, these only
work if the proper pretty-printer is written for the fancy pointer
type itself.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &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;initializer_list&lt;/span&gt;&lt;/code&gt; assignment issues
for open-addressing containers (&lt;a href="https://github.com/boostorg/unordered/pull/277"&gt;PR#277&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Allowed non-copyable callables to be passed to 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;initializer_list&lt;/span&gt;&lt;/code&gt; overloads of
&lt;code&gt;&lt;span class="identifier"&gt;insert_&lt;/span&gt;&lt;span class="special"&gt;{&lt;/span&gt;&lt;span class="keyword"&gt;and&lt;/span&gt;&lt;span class="special"&gt;|&lt;/span&gt;&lt;span class="keyword"&gt;or&lt;/span&gt;&lt;span class="special"&gt;}&lt;/span&gt;&lt;span class="identifier"&gt;_&lt;/span&gt;&lt;span class="special"&gt;[&lt;/span&gt;&lt;span class="identifier"&gt;c&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;span class="identifier"&gt;visit&lt;/span&gt;&lt;/code&gt; for concurrent containers,
by internally passing a &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;
of the callable to the iterator-pair overloads.
&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/url/"&gt;URL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
feat: set_params supports encoding_opts. (&lt;a href="https://github.com/boostorg/url/issues/856"&gt;#856&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
refactor: no deprecated variant2 alias from API. (&lt;a href="https://github.com/boostorg/url/issues/857"&gt;#857&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
refactor: query_rule consistent interpretation. (&lt;a href="https://github.com/boostorg/url/issues/864"&gt;#864&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/uuid/"&gt;UUID&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Restored the ability to construct a &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;
&lt;span class="identifier"&gt;uuid&lt;/span&gt;&lt;/code&gt; that was inadvertently
lost in 1.86.
&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;
Fixed bugs:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/wave/issues/220"&gt;GitHub
#220: &lt;em&gt;"Seg fault under C++20 and empty stringify
parameter"&lt;/em&gt;&lt;/a&gt;. Thanks &lt;a href="https://github.com/jwnhy/"&gt;Lu
HongYi&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/wave/issues/222"&gt;GitHub
#222: &lt;em&gt;"No line directive if first line of included
file is blank"&lt;/em&gt;&lt;/a&gt;. Thanks &lt;a href="https://github.com/njnobles"&gt;Nick
Nobles&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Build improvements including modular build support, thanks &lt;a href="https://github.com/grafikrobot"&gt;René Rivera&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_87_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++03: 4.6.3, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
&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, C++03: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++20: 11.0.3
&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;
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
&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_87_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.86.0</title><link>https://www.boost.org/users/history/version_1_86_0.html</link><guid>https://www.boost.org/users/history/version_1_86_0.html</guid><pubDate>Wed, 14 Aug 2024 16:07:17 +0000</pubDate><description>
&lt;div id="version_1_86_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;
No new libraries.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_86_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;default_completion_token&lt;/span&gt;&lt;/code&gt;
trait's primary template to select &lt;code&gt;&lt;span class="identifier"&gt;deferred&lt;/span&gt;&lt;/code&gt;
as the default completion token. As a result, most asynchronous operations'
initiating functions will return a deferred asynchronous operation
by default.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="identifier"&gt;is_completion_condition&lt;/span&gt;&lt;/code&gt;
trait and added missing default completion tokens to overloads of
&lt;code&gt;&lt;span class="identifier"&gt;async_read&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;async_read_at&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;async_write&lt;/span&gt;&lt;/code&gt;,
and &lt;code&gt;&lt;span class="identifier"&gt;async_write_at&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;is_connect_condition&lt;/span&gt;&lt;/code&gt;
trait and used it disambiguate overloads of &lt;code&gt;&lt;span class="identifier"&gt;async_connect&lt;/span&gt;&lt;/code&gt;
when the completion token is defaulted.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Extended the completion token adapters &lt;code&gt;&lt;span class="identifier"&gt;as_tuple&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;bind_allocator&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;bind_cancellation_slot&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;bind_executor&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;bind_immediate_executor&lt;/span&gt;&lt;/code&gt;, and &lt;code&gt;&lt;span class="identifier"&gt;redirect_error&lt;/span&gt;&lt;/code&gt; to allow them to
be used as partial completion token adapters.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added the &lt;code&gt;&lt;span class="identifier"&gt;cancel_after&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;cancel_at&lt;/span&gt;&lt;/code&gt; completion
token adapters.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed all completion token adapters to ensure they correctly propagate
the asynchronous operation's I/O executor during adaptation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Moved &lt;code&gt;&lt;span class="identifier"&gt;co_composed&lt;/span&gt;&lt;/code&gt;
out of the &lt;code&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;/code&gt;
namespace.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;composed&lt;/span&gt;&lt;/code&gt;, which
creates an initiation function object from a stateful implementation.
It is similar to &lt;code&gt;&lt;span class="identifier"&gt;co_composed&lt;/span&gt;&lt;/code&gt;,
but for regular function objects rather than C++20 coroutines.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;code&gt;&lt;span class="identifier"&gt;detached&lt;/span&gt;&lt;/code&gt;
completion token to work with asynchronous operations that have multiple
completion signatures.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;
to allow an empty variadic list of completion signatures, which would
indicate that an asynchronous operation never completes.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added overloads of &lt;code&gt;&lt;span class="identifier"&gt;async_initiate&lt;/span&gt;&lt;/code&gt;
that automatically deduce the type of the completion token.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;async_immediate&lt;/span&gt;&lt;/code&gt;
which implements a trivial asynchronous operation that completes
immediately, using an associated immediate executor if available.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Enabled SFINAE-based partial specialisation of the &lt;code&gt;&lt;span class="identifier"&gt;associator&lt;/span&gt;&lt;/code&gt; trait.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
A number of bug fixes, compiler/platform compatibility improvements,
and minor optimisations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various updates to 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_86_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;
Use &lt;a href="https://man.openbsd.org/OpenBSD-6.2/futex.2"&gt;&lt;code&gt;&lt;span class="identifier"&gt;futex&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="number"&gt;2&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;
system call on OpenBSD since recent OpenBSD versions have removed
support for &lt;code&gt;&lt;span class="identifier"&gt;syscall&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="number"&gt;2&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;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;
API Changes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added HTTP status code 418 &lt;code&gt;&lt;span class="identifier"&gt;I&lt;/span&gt;&lt;span class="error"&gt;'&lt;/span&gt;&lt;span class="identifier"&gt;m&lt;/span&gt;
&lt;span class="identifier"&gt;a&lt;/span&gt; &lt;span class="identifier"&gt;teapot&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;
Fixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Narrowing conversion in &lt;code&gt;&lt;span class="identifier"&gt;read_size_hint_db&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;
Overloads that are ambiguous when using default completion
tokens.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Misplaced static_assert in &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_fields&lt;/span&gt;&lt;/code&gt;
move-assignment operator.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Underflow of &lt;code&gt;&lt;span class="identifier"&gt;bytes_transferred&lt;/span&gt;&lt;/code&gt;
in WebSocket partial write operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;websocket&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;::&lt;/span&gt;&lt;span class="identifier"&gt;read_size_hint&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
does not exceed &lt;code&gt;&lt;span class="identifier"&gt;read_message_max&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various warnings in tests.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Error handling in SSL shutdown operations in examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Annotate fallthrough case in zlib.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Handling of expired timers in &lt;code&gt;&lt;span class="identifier"&gt;basic_stream&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;ops&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;transfer_op&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ambiguity in &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;basic_stream&lt;/span&gt;&lt;/code&gt;
constructor overloads.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Partial parsing of the final chunk in &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;parser&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;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Graceful shutdown in &lt;code&gt;&lt;span class="identifier"&gt;server_flex_awaitable&lt;/span&gt;&lt;/code&gt;
example.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Simplified awaitable examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added fuzzing targets.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove superfluous uses 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;bind&lt;/span&gt;&lt;/code&gt;
in some examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;ssl_stream&lt;/span&gt;&lt;/code&gt;
does not use &lt;code&gt;&lt;span class="identifier"&gt;flat_stream&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;
Documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;ssl_stream&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;flat_stream&lt;/span&gt;&lt;/code&gt;
marked as deprecated.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;net&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&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;/code&gt; is canonical in snippets
and examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &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;TLS&lt;/span&gt; &lt;span class="identifier"&gt;Shutdown&lt;/span&gt;
&lt;span class="identifier"&gt;Procedure&lt;/span&gt;&lt;/code&gt; section.
&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;
tyler92, Ruslan Zakirov, Orgad Shaneh, Alexander Kernozhitsky
&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/charconv"&gt;Charconv&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed support for PPC64LE architecture.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed support for platforms like Alpine linux that provide the &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;quadmath&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;h&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; header but not the compiled library.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed first character pattern matching in &lt;code&gt;&lt;span class="identifier"&gt;from_chars&lt;/span&gt;&lt;/code&gt;
for integer types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed overflow detection for integers with base greater than 10.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added native 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;float16_t&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;bfloat16_t&lt;/span&gt;&lt;/code&gt; instead of using interchange
formats.
&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/cobalt"&gt;Cobalt&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added support for asio::cancel_after
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Made &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;deferred&lt;/span&gt;&lt;/code&gt; co_await-able, because
it's asio's default token
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;noop&lt;/span&gt;&lt;/code&gt; utility
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added experimental support for stackful coroutines/fibers
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed movability of channel &amp;amp; coroutine types
&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/compat/"&gt;Compat&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;bind_front&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;bind_back&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;invoke&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;mem_fn&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;integer_sequence&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;type_traits&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 &lt;code&gt;&lt;span class="identifier"&gt;function_ref&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/container/"&gt;Container&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bugs/issues:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/container/issues/285"&gt;GitHub
#285: &lt;em&gt;"devector&amp;lt;&amp;gt;::push_front asserts
after clear()"&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/280"&gt;GitHub
#280: &lt;em&gt;"Several containers don't support non-movable
types when move assigning"&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/279"&gt;GitHub
#279: &lt;em&gt;"small_vector cannot go back to use stack
space"&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/277"&gt;GitHub
#277: &lt;em&gt;"Remove dep on boost::static_assert"&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/275"&gt;GitHub
#275: &lt;em&gt;"Compilation fails if custom key comparison
is used"&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/273"&gt;GitHub
#273: &lt;em&gt;"flat_map/vector crashes on appends (memory
corruption)"&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/269"&gt;GitHub
#269: &lt;em&gt;"flat_multimap::emplace not sorting elements
under GCC"&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/266"&gt;GitHub
#266: &lt;em&gt;"small_vector&amp;lt;T&amp;gt; is misaligned on
the stack in 32 bits"&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/259"&gt;GitHub
#259: &lt;em&gt;"Global variables"&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/245"&gt;GitHub
#245: &lt;em&gt;"flat_tree::insert ordered range doesn't
assert sorting"&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/241"&gt;GitHub
#241: &lt;em&gt;"flat_map should support same interface
as std::map"&lt;/em&gt;&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/core/"&gt;Core&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added 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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;pointer_in_range&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; header with a &lt;code&gt;&lt;span class="identifier"&gt;pointer_in_range&lt;/span&gt;&lt;/code&gt; function template
to check if a pointer is within a given range (Glen Fernandes).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;type_name&lt;/span&gt;&lt;/code&gt; for
abstract classes. (&lt;a href="https://github.com/boostorg/core/issues/172"&gt;#172&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;type_name&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; compilation error with MSVC
with disabled native &lt;code&gt;&lt;span class="keyword"&gt;wchar_t&lt;/span&gt;&lt;/code&gt;
type. (&lt;a href="https://github.com/boostorg/core/issues/173"&gt;#173&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a workaround for an MSVC &lt;a href="https://developercommunity.visualstudio.com/t/Compiler-bug:-Incorrect-C2247-and-C2248/10690025"&gt;bug&lt;/a&gt;
causing &lt;code&gt;&lt;span class="identifier"&gt;empty_value&lt;/span&gt;&lt;/code&gt;
compilation errors when it is used with a nested class. (&lt;a href="https://github.com/boostorg/core/pull/175"&gt;PR#175&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/crc/"&gt;CRC&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported; a C++11 compiler is required. (This
includes GCC 4.6 or later, and MSVC 10.0 (VS 2010) or later.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed dependencies on Array, Config, Integer, and TypeTraits. The
library is now standalone.
&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;
&lt;code&gt;&lt;span class="identifier"&gt;is_empty&lt;/span&gt;&lt;/code&gt; operation
is now better protected against concurrent filesystem modifications.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On POSIX systems, &lt;code&gt;&lt;span class="identifier"&gt;is_empty&lt;/span&gt;&lt;/code&gt;
now indicates error if invoked on a file other than a regular file
or a directory.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, fixed &lt;code&gt;&lt;span class="identifier"&gt;file_size&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;is_empty&lt;/span&gt;&lt;/code&gt; operating
on symlinks rather than the files the symlinks refer to. (&lt;a href="https://github.com/boostorg/filesystem/issues/313"&gt;#313&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;refresh&lt;/span&gt;&lt;/code&gt; no longer throws an exception
if the file referenced by the entry doesn't exist. This makes &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;status&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;symlink_status&lt;/span&gt;&lt;/code&gt;,
as well as methods based on them, behave similarly to the equivalent
standalone operations. The fact that the file does not exist is still
indicated via the &lt;code&gt;&lt;span class="identifier"&gt;error_code&lt;/span&gt;&lt;/code&gt;
returned by the corresponding &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;refresh&lt;/span&gt;&lt;/code&gt;
overload, or can be seen by testing if the file type returned by
&lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;status&lt;/span&gt;&lt;/code&gt; or &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;symlink_status&lt;/span&gt;&lt;/code&gt;
calls is &lt;code&gt;&lt;span class="identifier"&gt;file_type&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;file_not_found&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/filesystem/issues/314"&gt;#314&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;weakly_canonical&lt;/span&gt;&lt;/code&gt;
testing path elements for existence relative to the current path
instead of the base path specified in the call, if the input path
was a relative path.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, fixed &lt;code&gt;&lt;span class="identifier"&gt;weakly_canonical&lt;/span&gt;&lt;/code&gt;
producing incorrect result path when the input path started with
"..". (&lt;a href="https://github.com/boostorg/filesystem/issues/311"&gt;#311&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/format/"&gt;Format&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported; a C++11 compiler is required. (This
includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
&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/function/"&gt;Function&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Removed dependency on Boost.TypeTraits.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Brought back the &lt;code&gt;&lt;span class="identifier"&gt;argN_type&lt;/span&gt;&lt;/code&gt;
typedefs that were accidentally lost in 1.85.
&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 &lt;code&gt;&lt;span class="identifier"&gt;tell&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;error&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; functions to &lt;code&gt;&lt;span class="identifier"&gt;istream_device&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;ostream_device&lt;/span&gt;&lt;/code&gt; classes (&lt;a href="https://github.com/boostorg/gil/pull/747"&gt;PR#747&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;
Don't ignore custom color converter in &lt;code&gt;&lt;span class="identifier"&gt;color_converted_view&lt;/span&gt;&lt;/code&gt;
function (&lt;a href="https://github.com/boostorg/gil/pull/726"&gt;PR#726&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added workaround for conflict with &lt;code&gt;&lt;span class="identifier"&gt;min&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;max&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; macros on WinAPI (&lt;a href="https://github.com/boostorg/gil/pull/745"&gt;PR#745&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The use 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;filesystem&lt;/span&gt;&lt;/code&gt;
in GIL is now configurable in CMake via option &lt;code&gt;&lt;span class="identifier"&gt;BOOST_GIL_USE_BOOST_FILESYSTEM&lt;/span&gt;&lt;/code&gt;
(&lt;a href="https://github.com/boostorg/gil/pull/743"&gt;PR#743&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;
Fixed convolution in &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/723"&gt;PR#723&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Normalize Gaussian 2D kernel to avoid darkening (&lt;a href="https://github.com/boostorg/gil/pull/725"&gt;PR#725&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Wrong buffer size in path string conversion functions 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;wstring&lt;/span&gt;&lt;/code&gt; is fixed, avoiding
buffer overflows when using I/O-related functions with &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;wstring&lt;/span&gt;&lt;/code&gt; paths (&lt;a href="https://github.com/boostorg/gil/pull/746"&gt;PR#746&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;
Christoph Gringmuth, Christopher Kormanyos, nicolacandussi,
Dirk Stolle, 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/graph/"&gt;Graph&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;em&gt;Major&lt;/em&gt; update: C++14 is the
new minimum standard; this was partly dictated by dependencies (at
least to C++11) and partly by choice. If you require support for
an older standard, please contact the maintainer.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove direct dependency on Boost.Regex.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix several compilation errors caused by not explicitly including
common headers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;isomorphism&lt;/span&gt;&lt;/code&gt;: Fix
docs, ignore &lt;code&gt;&lt;span class="identifier"&gt;vertex_max_invariant&lt;/span&gt;&lt;/code&gt;
parameter in favour of cheaply calculating upper exclusive bound,
fix bug with Associative Property Map, improve space efficiency from
linear in the size of the maximum invariant to linear in the size
of g1.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;boykov_kolmogorov_max_flow&lt;/span&gt;&lt;/code&gt;:
Fix named parameter overload.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;adj_list_edge_iterator&lt;/span&gt;&lt;/code&gt;:
Fix maybe-uninitialized warnings.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;hawick_circuits&lt;/span&gt;&lt;/code&gt;:
Add a parameter to optionally limit the depth of the search, causing
a potentially suboptimal answer to be returned early.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;disjoint_sets&lt;/span&gt;&lt;/code&gt;: Improve
performance of &lt;code&gt;&lt;span class="identifier"&gt;link_sets&lt;/span&gt;&lt;/code&gt;
by removing redundant lookup of set representatives.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;maximum_adjacency_search&lt;/span&gt;&lt;/code&gt;:
Refactor and more tests.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;property&lt;/span&gt;&lt;/code&gt;: Use &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS&lt;/span&gt;&lt;/code&gt;
to remove wasted space.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;labeled_graph&lt;/span&gt;&lt;/code&gt;: Fix
&lt;code&gt;&lt;span class="identifier"&gt;remove_labeled_vertex&lt;/span&gt;&lt;/code&gt;
so that it actually removes the label too.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;r_c_shortest_paths&lt;/span&gt;&lt;/code&gt;:
Fix bug that the single-solution variant did not always return the
shortest path.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;read_graphviz&lt;/span&gt;&lt;/code&gt;: Fix
stack overflow (oss-fuzz issue 66719) and non-keyword subgraph parsing.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Many miscellaneous improvements: broken links, typos, etc.
&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;
Fixed bugs:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/interprocess/pull/191"&gt;GitHub
#191 (&lt;em&gt;"vectorstream: support file sizes larger
than INT_MAX "&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/198"&gt;GitHub
#198 (&lt;em&gt;"Minor fixes for documentation of offset_ptr"&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/202"&gt;GitHub
#202 (&lt;em&gt;"Allow to map message_queue in anonymous
memory"&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/207"&gt;GitHub
#207 (&lt;em&gt;"cmake: link system libraries"&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/214"&gt;GitHub
#214 (&lt;em&gt;"Doc: Fix github links"&lt;/em&gt;)&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/intrusive/"&gt;Intrusive&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bug &lt;a href="https://github.com/boostorg/intrusive/issues/86"&gt;GitHub
#86: &lt;em&gt;Invalid UTF-8 character in comment&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/json/"&gt;JSON&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for GCC versions older than version 5.0 is deprecated and
&lt;strong&gt;will stop in Boost 1.88.0&lt;/strong&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;source_location&lt;/span&gt;&lt;/code&gt; parameter
was added to throwing accessor functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Parse option to tolerate invalid UTF-16 surrogate pairs, and produce
&lt;a href="https://simonsapin.github.io/wtf-8/"&gt;WTF-8&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added accessor functions that return &lt;code&gt;&lt;span class="identifier"&gt;system&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;result&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Handle missing error case in direct parsing.
&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 conversion 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;basic_string_view&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;basic_string_view&lt;/span&gt;&lt;/code&gt; containing one
or more &lt;code&gt;&lt;span class="special"&gt;\&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;/code&gt;
characters. Issue was introduced in 1.85.0.
&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/leaf/"&gt;leaf&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
More optimal verbose_diagnostic_info implementation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bug fixes.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added [[nodiscard]] to class result&amp;lt;&amp;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/locale/"&gt;Locale&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Add support for custom allocators in &lt;code&gt;&lt;span class="identifier"&gt;conv&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;utf_to_utf&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Don't build examples by default
&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;
Added a workaround for &lt;code&gt;&lt;span class="identifier"&gt;windres&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;exe&lt;/span&gt;&lt;/code&gt;
issue, when it is used in CMake to compile event log resource files
on MinGW-w64. (&lt;a href="https://github.com/boostorg/log/pull/231"&gt;PR#231&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/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Correct Bessel function results at infinity, see &lt;a href="https://github.com/boostorg/math/issues/1143"&gt;1143&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve Non Central T numerical stability, see &lt;a href="https://github.com/scipy/scipy/issues/20693"&gt;scipy20693&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correct &lt;code&gt;&lt;span class="identifier"&gt;float_next&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;float_prior&lt;/span&gt;&lt;/code&gt; behaviour at infinity.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Prevent spurious underflow in non-central beta, see &lt;a href="https://github.com/scipy/scipy/issues/20693"&gt;scipy20693&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add improvement to Heuman Lambda precision.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve Skew Normal root finding, see &lt;a href="https://github.com/boostorg/math/issues/1120"&gt;1120&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Lots of minor fixes and improved code coverage.
&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;
Make sure &lt;code&gt;&lt;span class="identifier"&gt;eval_convert_to&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; does not terminate with super large
numbers, see &lt;a href="https://github.com/boostorg/multiprecision/pull/618"&gt;618&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix &lt;code&gt;&lt;span class="identifier"&gt;sinc&lt;/span&gt;&lt;/code&gt; implementation
to match behavior of Boost.Math.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix divide-by-zero in cpp_int modulus operations.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix underflow behavior consistency for integers greater than 128-bits,
see &lt;a href="https://github.com/boostorg/multiprecision/issues/626"&gt;626&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/mysql/"&gt;MySQL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The long-deprecated functions &lt;code&gt;&lt;span class="identifier"&gt;query&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;start_query&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;execute_statement&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;start_statement_execution&lt;/span&gt;&lt;/code&gt; (and
their async equivalents) have been removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Breaking changes to experimental APIs:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The &lt;code&gt;&lt;span class="identifier"&gt;identifier&lt;/span&gt;&lt;/code&gt;
class (client-side SQL formatting) has been removed. Use the
new format specifiers feature, instead.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The required interface for custom formatters has been changed
to accomodate the new format specifiers API.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;async_connect&lt;/span&gt;&lt;/code&gt;
now requires that its &lt;code&gt;&lt;span class="identifier"&gt;connect_params&lt;/span&gt;&lt;/code&gt;
argument be kept alive until the operation completes. The overload
taking a &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt; &lt;span class="identifier"&gt;connect_params&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
has been removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;character_set&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;/code&gt;
is now a &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt; &lt;span class="keyword"&gt;char&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
instead of a &lt;code&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;,
as MySQL character set names can't contain NULL characters.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
internal buffer is now limited to 64MB. If you need to read
or write rows bigger than that, increase &lt;code&gt;&lt;span class="identifier"&gt;any_connection_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;max_buffer_size&lt;/span&gt;&lt;/code&gt;.
&lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;/code&gt;
and their helper typedefs are not limited.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Renamed &lt;code&gt;&lt;span class="identifier"&gt;any_connection_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;initial_read_buffer_size&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;initial_buffer_size&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Renamed &lt;code&gt;&lt;span class="identifier"&gt;pool_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;initial_read_buffer_size&lt;/span&gt;&lt;/code&gt;
to &lt;code&gt;&lt;span class="identifier"&gt;initial_buffer_size&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;
New experimental API: &lt;strong&gt;pipelines&lt;/strong&gt;.
Pipelines can increase efficiency by coalescing several requests
in a single network packet. Pipelines can be used to run text queries,
prepare, execute and close statements, reset session state and set
the connection's character set.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Client-side SQL formatting now supports ranges out of the box. Formatting
can be further customized using the new &lt;code&gt;&lt;span class="identifier"&gt;sequence&lt;/span&gt;&lt;/code&gt;
function. Use cases like batch inserts and batch lookups can be significantly
simplified using this functionality.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Client-side SQL formatting now supports format specifiers which modify
how values are formatted. &lt;code&gt;&lt;span class="special"&gt;{:&lt;/span&gt;&lt;span class="identifier"&gt;i&lt;/span&gt;&lt;span class="special"&gt;}&lt;/span&gt;&lt;/code&gt;
formats a string as a dynamic SQL identifiers, and &lt;code&gt;&lt;span class="special"&gt;{:&lt;/span&gt;&lt;span class="identifier"&gt;r&lt;/span&gt;&lt;span class="special"&gt;}&lt;/span&gt;&lt;/code&gt; outputs a raw unescaped
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The static interface (&lt;code&gt;&lt;span class="identifier"&gt;static_results&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;static_execution_state&lt;/span&gt;&lt;/code&gt;)
now supports Boost.Pfr types using &lt;code&gt;&lt;span class="identifier"&gt;pfr_by_name&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;pfr_by_position&lt;/span&gt;&lt;/code&gt;.
Added &lt;code&gt;&lt;span class="identifier"&gt;underlying_row_t&lt;/span&gt;&lt;/code&gt;
to support such types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;date&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;datetime&lt;/span&gt;&lt;/code&gt; can now be constructed
from and converted 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;chrono&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;local_time&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;any_connection_params&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;max_buffer_size&lt;/span&gt;&lt;/code&gt;,
which allows to set a limit to the connection's internal buffer.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;is_fatal_error&lt;/span&gt;&lt;/code&gt;,
which allows users can now distinguish between fatal (which require
closing and re-opening the connection) and non-fatal error codes.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;formattable_ref&lt;/span&gt;&lt;/code&gt;,
a type-erased reference type that can refer to any type satisfying
the &lt;code&gt;&lt;span class="identifier"&gt;Formattable&lt;/span&gt;&lt;/code&gt; concept.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an ODR violation under MSVC which could cause crashes in release
builds when using Boost.MySQL with other code also using &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;coroutine&lt;/span&gt;&lt;/code&gt; in different translation
units.
&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/odeint/"&gt;Odeint&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added CMake Option &lt;code&gt;&lt;span class="identifier"&gt;BOOST_NUMERIC_ODEINT_NO_ADAPTORS&lt;/span&gt;&lt;/code&gt;
to reduce dependencies, see &lt;a href="https://github.com/boostorg/odeint/issues/82"&gt;82&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed CMake detection of MPI.
&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/process/"&gt;Process&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Moved the old boost.process to v1 subfolder and inline namespace.
deprecated process/*.hpp v1 headers
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Turned v2 into a compile library.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed usage on alpine linux / musl
&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;
&lt;strong&gt;Big new feature: stacktrace from arbitrary
exception for Windows&lt;/strong&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;stacktrace&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;from_current_exception&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now works on Windows platform.
Many thanks to &lt;a href="https://github.com/huangqinjin"&gt;huangqinjin&lt;/a&gt;
for the implementation &lt;a href="https://github.com/boostorg/stacktrace/pull/159"&gt;PR#159&lt;/a&gt;
Now on POSIX and Windows
the &lt;code&gt;&lt;span class="identifier"&gt;from_current_exception&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt; &lt;/code&gt; function returns the stacktrace
of the current exception object as if the stacktrace was captured
at the point of throwing the exception.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed inclusion of rarely used Windows SDK headers which can cause
conflict with other code using Windows SDK. Thanks to &lt;a href="https://github.com/mabrarov"&gt;Marat
Abrarov&lt;/a&gt; for fixing the issue &lt;a href="https://github.com/boostorg/stacktrace/pull/157"&gt;PR#157&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Build option &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;stacktrace&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;from_exception&lt;/span&gt;&lt;/code&gt;
now properly works on MacOS. Thanks to &lt;a href="https://github.com/pdimov"&gt;Peter
Dimov&lt;/a&gt; for the fix &lt;a href="https://github.com/boostorg/stacktrace/pull/166"&gt;PR#166&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a typo in assert expression. Thanks to &lt;a href="https://github.com/Ukilele"&gt;Kilian
Henneberger&lt;/a&gt; for the bug report &lt;a href="https://github.com/boostorg/stacktrace/issues/164"&gt;#164&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed shadowing warnings. Thanks to &lt;a href="https://github.com/nigels-com"&gt;Nigel
Stewart&lt;/a&gt; for the bug report &lt;a href="https://github.com/boostorg/stacktrace/issues/141"&gt;#141&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;dladdr&lt;/span&gt;&lt;/code&gt; minimal
support for AIX. Many thanks to Clément Chigot for the implementation
&lt;a href="https://github.com/boostorg/stacktrace/pull/114"&gt;PR#114&lt;/a&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;stacktrace&lt;/span&gt;&lt;/code&gt; CMake alias that refers
to the best supported implementation of Boost.Stacktrace on the platform.
Thanks to &lt;a href="https://github.com/leha-bot"&gt;Alex&lt;/a&gt; for
the feature &lt;a href="https://github.com/boostorg/stacktrace/pull/167"&gt;PR#167&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Significant improvement of CMake: multiple fixes, added many new
tests, improved CI. Many thanks to &lt;a href="https://github.com/pdimov"&gt;Peter
Dimov&lt;/a&gt; for all the improvements.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix addr2line work when the process is looked up via &lt;code&gt;&lt;span class="identifier"&gt;PATH&lt;/span&gt;&lt;/code&gt;. Thanks to &lt;a href="https://github.com/Schreischildkroete"&gt;Schreischildkroete&lt;/a&gt;
for the bug report and to &lt;a href="https://github.com/j-jr-richter"&gt;Jens
Richter&lt;/a&gt; for fix &lt;a href="https://github.com/boostorg/stacktrace/issues/72"&gt;#72&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/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wundef&lt;/span&gt;&lt;/code&gt;
in configuration step.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix unreachable return compilation error on MSVC.
&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/unordered/"&gt;Unordered&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added container &lt;code&gt;&lt;span class="identifier"&gt;pmr&lt;/span&gt;&lt;/code&gt;
aliases when header &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;memory_resource&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
is available. The alias &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;unordered&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;pmr&lt;/span&gt;&lt;span class="special"&gt;::[&lt;/span&gt;&lt;span class="identifier"&gt;container&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;/code&gt; refers 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;unordered&lt;/span&gt;&lt;span class="special"&gt;::[&lt;/span&gt;&lt;span class="identifier"&gt;container&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;/code&gt; with a &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;pmr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;polymorphic_allocator&lt;/span&gt;&lt;/code&gt;
allocator type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Equipped open-addressing and concurrent containers to internally
calculate and provide statistical metrics affected by the quality
of the hash function. This functionality is enabled by the global
macro &lt;code&gt;&lt;span class="identifier"&gt;BOOST_UNORDERED_ENABLE_STATS&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Avalanching hash functions must now be marked via an &lt;code&gt;&lt;span class="identifier"&gt;is_avalanching&lt;/span&gt;&lt;/code&gt; typedef with an
embedded &lt;code&gt;&lt;span class="identifier"&gt;value&lt;/span&gt;&lt;/code&gt; constant
set to &lt;code&gt;&lt;span class="keyword"&gt;true&lt;/span&gt;&lt;/code&gt; (typically,
defining &lt;code&gt;&lt;span class="identifier"&gt;is_avalanching&lt;/span&gt;&lt;/code&gt;
as &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;true_type&lt;/span&gt;&lt;/code&gt;). &lt;code&gt;&lt;span class="keyword"&gt;using&lt;/span&gt;
&lt;span class="identifier"&gt;is_avalanching&lt;/span&gt; &lt;span class="special"&gt;=&lt;/span&gt;
&lt;span class="keyword"&gt;void&lt;/span&gt;&lt;/code&gt; is deprecated but allowed
for backwards compatibility.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Visual Studio Natvis framework custom visualizations for containers
and iterators. This works for all containers with an allocator using
raw pointers. In this release, containers and iterators are not supported
if their allocator uses fancy pointers. This may be addressed in
later releases.
&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;em&gt;Major&lt;/em&gt; update.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported, a C++11 compiler is required. (This
includes GCC 4.8 or later, MSVC 14.0 (VS 2015) or later, and MinGW-w64.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Decreased number of Boost dependencies from 39 (in total) to just
5.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated to reflect the newer &lt;a href="https://datatracker.ietf.org/doc/rfc9562/"&gt;RFC
9562&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added generators for time-based UUIDs.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;em&gt;Many&lt;/em&gt; other improvements, see
the &lt;a href="https://www.boost.org/libs/uuid/doc/html/uuid.html#changes"&gt;revision history&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/wave/"&gt;Wave&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Replaced one use of vsprintf with the more secure vsnprintf
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bug:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/wave/issues/197"&gt;#197&lt;/a&gt;: Improper signed overflow handling (UB and a missing
division check)
&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/winapi/"&gt;WinAPI&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_USE_WINAPI_VERSION&lt;/span&gt;&lt;/code&gt;
CMake option, which allows users to specify the Windows version for
Boost to target.
&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_86_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;
DTD updated: &lt;code&gt;&lt;span class="identifier"&gt;constructor&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;assignment&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;destructor&lt;/span&gt;&lt;/code&gt;
elements are now allowed inside &lt;code&gt;&lt;span class="identifier"&gt;method&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;group&lt;/span&gt;&lt;/code&gt;
elements.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Many fixes and improvements in Doxygen-generated documentation:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed duplicate equal signs in Doxygen-generated enum value
initializers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Disabled alphabetical sorting of function arguments. The sorting
can be re-enabled by setting the new &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;sort&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;params&lt;/span&gt;&lt;/code&gt;
XSL parameter to 1.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for custom class member grouping. See Doxygen
tags &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;name&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="special"&gt;{&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="error"&gt;@&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 support for Doxygen references to classes, methods, enums,
variables, etc. (see &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;ref&lt;/span&gt;&lt;/code&gt; tag).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;remark&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;important&lt;/span&gt;&lt;/code&gt;
tags.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;parblock&lt;/span&gt;&lt;/code&gt; tags, which can
be used to place multiple paragraphs under a tag that expects
a single paragraph as an argument (e.g. &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;returns&lt;/span&gt;&lt;/code&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Template parameter defaults that refer to implementation details
are now concealed, similar to function parameter defaults.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved presentation of unnamed enums. Instead of showing
a synthesized name such as &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="number"&gt;0&lt;/span&gt;&lt;/code&gt;, the name is either omitted
or is &lt;code&gt;&lt;span class="special"&gt;[&lt;/span&gt;&lt;span class="identifier"&gt;unnamed&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;/code&gt;, if the name is necessary
to introduce a link to the enum documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the "See Also" (&lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;sa&lt;/span&gt;&lt;/code&gt;) blocks to be displayed
inline, similar to "Returns".
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed presentation of multiple exception specifications (&lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;throws&lt;/span&gt;&lt;/code&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for free form description of throwing behavior.
If the exception type after the &lt;code&gt;&lt;span class="error"&gt;@&lt;/span&gt;&lt;span class="identifier"&gt;throws&lt;/span&gt;&lt;/code&gt; tag is "~"
then the exception type is omitted from the output, and the
following description is displayed directly in the "Throws"
section.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed redundant spaces in return types and template parameters.
&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/tools/build/"&gt;Build&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Includes release of &lt;a href="https://www.boost.org/tools/build/doc/html/#_version_5_2_1"&gt;B2
version 5.2.1&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_86_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++03: 4.6.3, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
&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, C++03: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++20: 11.0.3
&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;
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
&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_86_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item><item><title>Version 1.85.0</title><link>https://www.boost.org/users/history/version_1_85_0.html</link><guid>https://www.boost.org/users/history/version_1_85_0.html</guid><pubDate>Mon, 15 Apr 2024 17:38:25 +0000</pubDate><description>
&lt;div id="version_1_85_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.
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Container
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
flat_map/multimap containers can crash or return invalid results
in some compilers due to UB in the library, see &lt;a href="https://github.com/boostorg/container/issues/273"&gt;#273&lt;/a&gt;.
&lt;a href="https://www.boost.org/patches/1_85_0/0001-container-fix-flat_map.patch"&gt;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_85_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/charconv/"&gt;Charconv&lt;/a&gt;:&lt;/span&gt; A high quality implementation
of &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;charconv&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; in C++11, from Matt Borland.
&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/scope/"&gt;Scope&lt;/a&gt;:&lt;/span&gt; A collection of scope guard
utilities and a &lt;code&gt;&lt;span class="identifier"&gt;unique_resource&lt;/span&gt;&lt;/code&gt;
wrapper, from Andrey Semashev.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_85_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;
Fixed the &lt;code&gt;&lt;span class="identifier"&gt;async_result&lt;/span&gt;&lt;/code&gt;
primary template's concept checking to correctly handle lvalue-qualified
completion signatures.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed some compile errors that could arise when using the &lt;code&gt;&lt;span class="identifier"&gt;bind_allocator&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;bind_executor&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;bind_immediate_executor&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;bind_cancellation_slot&lt;/span&gt;&lt;/code&gt;
completion token adapters to adapt each other.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed the &lt;code&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;ranged_parallel_group&lt;/span&gt;&lt;/code&gt;
operation so that it moves the &lt;code&gt;&lt;span class="identifier"&gt;completion_order&lt;/span&gt;&lt;/code&gt;
vector when invoking the completion handler.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed some warnings about deprecated implicit copy constructors on
&lt;code&gt;&lt;span class="identifier"&gt;ip&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;basic_resolver_query&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;io_context&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;strand&lt;/span&gt;&lt;/code&gt;, and &lt;code&gt;&lt;span class="identifier"&gt;coroutine&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the version specification used to initialise Winsock.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;co_spawn&lt;/span&gt;&lt;/code&gt; to
correctly propagate exceptions resulting from cancellation to the
completion handler.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added calls 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;launder&lt;/span&gt;&lt;/code&gt;
to fix undefined behaviour in &lt;code&gt;&lt;span class="identifier"&gt;awaitable&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt; internal storage.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added missing handling of the &lt;code&gt;&lt;span class="identifier"&gt;file_base&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;append&lt;/span&gt;&lt;/code&gt;
flag in the Windows implementation of file support.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated the socket and descriptor implementations to add more cases
where they will fall back to &lt;code&gt;&lt;span class="identifier"&gt;fcntl&lt;/span&gt;&lt;/code&gt;
if a call to &lt;code&gt;&lt;span class="identifier"&gt;ioctl&lt;/span&gt;&lt;/code&gt;
fails.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the &lt;tt&gt;boost/asio/experimental/parallel_group.hpp&lt;/tt&gt;
header so that it is self-contained.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a compile error that occurred when channels and &lt;code&gt;&lt;span class="identifier"&gt;experimental&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;coro&lt;/span&gt;&lt;/code&gt; were both used in the same
translation unit.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added missing CancellationSlot type requirements to documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed the documentation hyperlinks for the deduced return types of
asynchronous operations' initiating functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Other minor documentation updates.
&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 support for &lt;code&gt;&lt;span class="identifier"&gt;pause&lt;/span&gt;&lt;/code&gt;
instruction on RISC-V. (&lt;a href="https://github.com/boostorg/atomic/pull/65"&gt;PR#65&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/beast/"&gt;Beast&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
API Changes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
The status code list has been updated to conform with the IANA
registry.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixes
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Unreachable code warning in &lt;code&gt;&lt;span class="identifier"&gt;buffers_cat&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;
Connection error handling in &lt;code&gt;&lt;span class="identifier"&gt;websocker_server_awaitable&lt;/span&gt;&lt;/code&gt;
example.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Concurrent calls to &lt;code&gt;&lt;span class="identifier"&gt;async_write&lt;/span&gt;&lt;/code&gt;
in advanced server examples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
zlib name conflicts with minizip.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
host string should be updated after &lt;code&gt;&lt;span class="identifier"&gt;SSL_set_tlsext_host_name&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;li&gt;
&lt;div&gt;
Improvements
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&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;associator&lt;/span&gt;&lt;/code&gt; is specialized
for &lt;code&gt;&lt;span class="identifier"&gt;bind_wrapper&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;bind_front_wrapper&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add non-allocating overload for error category message function.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Documentation
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Specifies when calling &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;message&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;prepare_payload&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; is optional.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Operations affected by &lt;code&gt;&lt;span class="identifier"&gt;basic_stream&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;expires_after&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;code&gt;&lt;span class="identifier"&gt;teardown&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;async_teardown&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; are customization points.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Moving or copying &lt;code&gt;&lt;span class="identifier"&gt;http&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;serializer&lt;/span&gt;&lt;/code&gt;
after first usage is undefined behaviour.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;websocket&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;permessage_deflate&lt;/span&gt;&lt;/code&gt; should
be configured before performing the WebSocket handshake.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;bytes_transferred&lt;/span&gt;&lt;/code&gt;
in http reads operations reports the number of bytes consumed
by the HTTP parser.
&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;
Emile Cormier, JohannesWilde, yhzx233
&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/bimap/"&gt;Bimap&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed heterogeneous lookup for side collections (&lt;a href="https://github.com/boostorg/bimap/pull/42"&gt;PR#42&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/bind/"&gt;Bind&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported; a C++11 compiler is required. (This
includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
&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;
Removed outdated mentions 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;lexical_cast&lt;/span&gt;&lt;/code&gt;
that is not part of the library any more. Thanks to &lt;a href="https://github.com/eoan-ermine"&gt;Danil
Sidoruk&lt;/a&gt; for the PR &lt;a href="https://github.com/boostorg/conversion/pull/28"&gt;PR#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/core/"&gt;Core&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;functor&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
header with a &lt;code&gt;&lt;span class="identifier"&gt;functor&lt;/span&gt;&lt;/code&gt;
class template for wrapping a raw function into a function object
class.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Changed &lt;code&gt;&lt;span class="identifier"&gt;null_deleter&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;fclose_deleter&lt;/span&gt;&lt;/code&gt; and
checked deleter definitions so that they don't bring namespace &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;/code&gt; into argument-dependent lookup.
Users may need to either explicitly qualify the namespace of the
called function or add a &lt;code&gt;&lt;span class="keyword"&gt;using&lt;/span&gt;&lt;/code&gt;-declaration.
&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;
&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;generic_path&lt;/span&gt;&lt;/code&gt; and &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;generic_string&lt;/span&gt;&lt;/code&gt; methods now remove
duplicate directory separators in the returned paths.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;v4:&lt;/strong&gt; &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;generic_path&lt;/span&gt;&lt;/code&gt;,
&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;generic_string&lt;/span&gt;&lt;/code&gt;, &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;make_preferred&lt;/span&gt;&lt;/code&gt;
and &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_normal&lt;/span&gt;&lt;/code&gt; avoid converting
between backslashes and forward slashes in path root names. For example,
on Windows, &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\\\\\\\\?\\\\c:\\\\foo"&lt;/span&gt;&lt;span class="special"&gt;).&lt;/span&gt;&lt;span class="identifier"&gt;generic_string&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now returns "\\?\c:/foo"
instead of "//?/c:/foo". Similarly, &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="string"&gt;"\\\\\\\\host/share/foo/.."&lt;/span&gt;&lt;span class="special"&gt;).&lt;/span&gt;&lt;span class="identifier"&gt;lexically_normal&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now returns "\\host\share".
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;v4:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;equivalent&lt;/span&gt;&lt;/code&gt;
now indicates error if either one of the paths doesn't exist.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;v4:&lt;/strong&gt; &lt;code&gt;&lt;span class="identifier"&gt;absolute&lt;/span&gt;&lt;/code&gt;
now returns a path with a trailing directory separator when the input
path has an empty &lt;code&gt;&lt;span class="identifier"&gt;relative_path&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;. (&lt;a href="https://github.com/boostorg/filesystem/issues/301"&gt;#301&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a &lt;code&gt;&lt;span class="identifier"&gt;unique_path&lt;/span&gt;&lt;/code&gt;
overload taking a single &lt;code&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;/code&gt;
argument. The overload generates a unique path using the default
path model.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;weakly_canonical&lt;/span&gt;&lt;/code&gt;
now produces an absolute path if the input path is relative and contains
no elements that exist in the filesystem. (&lt;a href="https://github.com/boostorg/filesystem/issues/300"&gt;#300&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new &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;ignore_attribute_errors&lt;/span&gt;&lt;/code&gt;
option for &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;/code&gt; operations.
The new option allows to ignore possible errors while copying file
attributes. (&lt;a href="https://github.com/boostorg/filesystem/issues/179"&gt;#179&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Linux, &lt;code&gt;&lt;span class="identifier"&gt;copy_file&lt;/span&gt;&lt;/code&gt;
backends 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 will attempt to preallocate storage for the target file.
This may reduce filesystem fragmentation and provide early error
indication if there is not enough free space. Not all filesystems
support this feature; file copying proceeds if storage preallocation
is not supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On POSIX systems that support &lt;a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html"&gt;&lt;code&gt;&lt;span class="identifier"&gt;fdopendir&lt;/span&gt;&lt;/code&gt;&lt;/a&gt;, &lt;code&gt;&lt;span class="identifier"&gt;openat&lt;/span&gt;&lt;/code&gt; and related APIs defined
in POSIX.1-2008, as well as on Windows, &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
now uses file descriptors/handles instead of paths to query the file
statuses and open nested directories during iteration. This makes
directory iteration more resilient to concurrent modifications of
the filesystem.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed APIs that were previously declared deprecated. In particular,
&lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt; member
functions, &lt;code&gt;&lt;span class="identifier"&gt;is_regular&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;copy_directory&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;symbolic_link_exists&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;complete&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;copy_option&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;symlink_option&lt;/span&gt;&lt;/code&gt;,
as well as &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;convenience&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;filesystem&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;path_traits&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; headers were removed. Possible
replacements for the removed components are mentioned in the documentation.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
construction, assignment and appending from container types (e.g.
&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;vector&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="keyword"&gt;char&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;)
is now disabled by default. Users can still enable this functionality
by defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_FILESYSTEM_DEPRECATED&lt;/span&gt;&lt;/code&gt;.
This functionality remains deprecated and will be completely 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;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/function/"&gt;Function&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported; a C++11 compiler is required. (This
includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
&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/1247"&gt;PR#1247&lt;/a&gt; Use if constexpr macro instead of condition
macro
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1242"&gt;PR#1242&lt;/a&gt; Pass strategy to sort by side
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1234"&gt;PR#1234&lt;/a&gt; Add cmake files for clang/mac/darwin/arm64
&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/1231"&gt;#1231&lt;/a&gt;, &lt;a href="https://github.com/boostorg/geometry/issues/1244"&gt;#1244&lt;/a&gt; Fix invalid set operations
for CCW polygons
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1259"&gt;#1259&lt;/a&gt; Fix compilation error with CUDA NVCC compiler
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1250"&gt;#1250&lt;/a&gt; Fix buffer of linestring returning incorrect
inner polygon
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1230"&gt;#1230&lt;/a&gt; Fix union operation perturbing a point and
returning wrong result
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1229"&gt;#1229&lt;/a&gt; Fix union producing self intersections
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1248"&gt;PR#1248&lt;/a&gt; Fix buffer issue by setting turns in closed
clusters as non traversable
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1246"&gt;PR#1246&lt;/a&gt; Fix compilation of converter and is_base_of
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various fixes of errors and warnings
&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/iterator/"&gt;Iterator&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Support for C++03 is deprecated and 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;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/json/"&gt;JSON&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Endian is now used to deal with endianness.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Aliases to Boost.System and Boost.Container components are deprecated
and &lt;strong&gt;will be completely removed in 1.87.0&lt;/strong&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Conversion of described classes supports private members.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Rvalue reference overload for &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;
Add conversion support for path-like types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Parsing into described classes correctly considers inherited members.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Conversion of self-referential sequences is disabled.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed reference handling in visit.
&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/leaf/"&gt;LEAF&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
New API for transporting of error objects and exceptions between
threads: &lt;code&gt;&lt;span class="identifier"&gt;try_capture_all&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;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;
able to transport exceptions captured via &lt;code&gt;&lt;span class="identifier"&gt;try_capture_all&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;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;
transporting dynamically captured error objects with improved efficiency.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Old &lt;code&gt;&lt;span class="identifier"&gt;make_shared_context&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;capture&lt;/span&gt;&lt;/code&gt; APIs are deprecated, will
be removed in the next release.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed support for transporting of dynamicaly captured error objects
in exceptions.
&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;
Significant rewrite of the internal logic to separate optimized and
C++ Standard Library IO-based streams:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++ Standard Library based streams now constructed in less
cases leading to &lt;strong&gt;better performance&lt;/strong&gt;;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
less template instantiations and simpler code;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
always use &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;char_traits&lt;/span&gt;&lt;/code&gt;
(do not use custom traits from input/output types as it leads
to linktime or runtime errors);
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
fixed missuse of forward declared boost::array (thanks to
&lt;a href="https://github.com/13steinj"&gt;13steinj&lt;/a&gt; for
the report &lt;a href="https://github.com/boostorg/lexical_cast/issues/64"&gt;#64&lt;/a&gt;!);
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
support for &lt;code&gt;&lt;span class="keyword"&gt;volatile&lt;/span&gt;&lt;/code&gt;
input types was dropped, following the C++ Standard Library
trend.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimized conversions from std::basic_string_view and boost::basic_string_view
&lt;a href="https://github.com/boostorg/lexical_cast/issues/30"&gt;#30&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.NumericConversion and Boost.MPL. Fixed
some cases of converting floting point types to arithmetics.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The library now compiles and works fine 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;sanitize&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;recover&lt;/span&gt;&lt;span class="special"&gt;=&lt;/span&gt;&lt;span class="identifier"&gt;integer&lt;/span&gt;&lt;/code&gt; &lt;a href="https://github.com/boostorg/lexical_cast/issues/45"&gt;#45&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/locale/"&gt;Locale&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix linker issues due to missing typeinfo for &lt;code&gt;&lt;span class="identifier"&gt;char8_t&lt;/span&gt;&lt;/code&gt;
in C++20 mode
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix IConv compile flags when using ICU that has a bundled IConv
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;collator&lt;/span&gt;&lt;/code&gt; now throws
on construction, if at all, as documented
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;collator&lt;/span&gt;&lt;/code&gt; no longer
derives 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;collator&lt;/span&gt;&lt;/code&gt;
to avoid possible type confusing when it isn't available for the
current backend &lt;a href="https://github.com/boostorg/locale/pull/216"&gt;PR#216&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Throw an exception when a faulty IConv library is detected (e.g.
on some MacOS versions) instead of looping indefinitely &lt;a href="https://github.com/boostorg/locale/pull/218"&gt;PR#218&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Reduce resolution of &lt;code&gt;&lt;span class="identifier"&gt;date_time&lt;/span&gt;&lt;/code&gt;
to seconds as milliseconds where not easily available causing confusion
&lt;a href="https://github.com/boostorg/locale/issues/221"&gt;#221&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/math/"&gt;Math&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added a new collection of optimization algorithms:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Differential Evolution &lt;a href="https://github.com/boostorg/math/pull/1062"&gt;PR#1062&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
JSO &lt;a href="https://github.com/boostorg/math/pull/1065"&gt;PR#1065&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Random Search &lt;a href="https://github.com/boostorg/math/pull/1071"&gt;PR#1071&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
CMA-ES &lt;a href="https://github.com/boostorg/math/pull/1074"&gt;PR#1074&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix Divide by 0 warning in NCF survival function
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix constexpr depth limits of ccmath::floor/ceil fail for large arguments
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve accuracy of quartic_roots
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix cstdfloat numeric limits detection macro for libstdc++14
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix for MSVC UCRT defining _Complex_I in complex.h when using C++14
&lt;a href="https://github.com/boostorg/math/pull/1060"&gt;PR#1060&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve cstdfloat iostream &lt;a href="https://github.com/boostorg/math/pull/1066"&gt;PR#1066&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix redefnition of Boost.Config macros when using standalone mode
in a non-standalone environment
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Significant improvements to code coverage with associated bug 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/msm/"&gt;MSM&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Major Update&lt;/strong&gt;. Backend update (back11).
Requires C++ 11. The documentation now uses it as default.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Big new feature&lt;/strong&gt;. New front-end (PlantUML).
Requires C++ 20
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Various Bugfixes (compiler errors and warnings, priority of deferred
events)
&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;
Fixed documentation errors.
&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 deprecation warnings from C++23 &amp;lt;limits&amp;gt; &lt;a href="https://github.com/boostorg/multiprecision/pull/575"&gt;PR#575&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix cpp_bin_float for small bit counts &lt;a href="https://github.com/boostorg/multiprecision/pull/577"&gt;PR#577&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix -Wpessimizing-move &lt;a href="https://github.com/boostorg/multiprecision/pull/580"&gt;PR#580&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add covecov runs
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Reduce truncation in cpp_dec_float multiplication &lt;a href="https://github.com/boostorg/multiprecision/pull/585"&gt;PR#585&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix complex_adaptor to match precision requirements &lt;a href="https://github.com/boostorg/multiprecision/pull/597"&gt;PR#597&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix for breaking changes in tommath &lt;a href="https://github.com/boostorg/multiprecision/pull/603"&gt;PR#603&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix for types that can be converted to number participting in arithmetic
operator overloads &lt;a href="https://github.com/boostorg/multiprecision/issues/608"&gt;#608&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/mysql/"&gt;MySQL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Breaking change&lt;/strong&gt;: Boost.MySQL now
requires linking to the new &lt;strong&gt;Boost.Charconv&lt;/strong&gt;
compiled library. This addresses a locale-dependency problem, increases
efficiency, and powers the new client-side SQL formatting feature.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added experimental support for &lt;strong&gt;connection pools&lt;/strong&gt;,
which allows re-using sessions and provides built-in reconnection
and error handling.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added experimental support for &lt;strong&gt;type-erased
connections&lt;/strong&gt; (&lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
class). &lt;code&gt;&lt;span class="identifier"&gt;any_connection&lt;/span&gt;&lt;/code&gt;
is not a template and features simpler connection establishment and
reconnection semantics.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added experimental support for &lt;strong&gt;client-side
SQL formatting functions&lt;/strong&gt; (&lt;code&gt;&lt;span class="identifier"&gt;format_sql&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;format_sql_to&lt;/span&gt;&lt;/code&gt;).
These allow securely composing queries client-side, which enables
patterns like batch inserts, dynamic filters or PATCH-like updates.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a performance issue affecting &lt;code&gt;&lt;span class="identifier"&gt;close_statement&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;async_close_statement&lt;/span&gt;&lt;/code&gt;
that could cause significant delays in application code.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for building with &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The deprecated execution interface (&lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;query&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;start_query&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;execute_statement&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;connection&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;start_statement_execution&lt;/span&gt;&lt;/code&gt; and their
async counterparts) now triggers warnings, as it's scheduled for
removal in Boost 1.86.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a bug that caused some error messages to be truncated.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Warning cleanup. Builds are now clean from warnings when building
with &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wall&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wextra&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All &lt;code&gt;&lt;span class="identifier"&gt;field_view&lt;/span&gt;&lt;/code&gt; constructors
are now stable.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The library internals have been rewritten using a sans-io approach
to reduce complexity.
&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/odeint/"&gt;Odeint&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Breaking change&lt;/strong&gt;: The library now
explicitly requires C++14 instead of implicitly by including Boost.Math
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix compatibility with Thrust 1.10.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed C++03 Boost components:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Array
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bind
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Function
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Static_assert
&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/pfr/"&gt;PFR&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;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;get_name&lt;/span&gt;&lt;/code&gt; now can work with local
types on some compilers. Thanks to &lt;a href="https://github.com/schaumb"&gt;Bela
Schaum&lt;/a&gt; for the PR &lt;a href="https://github.com/boostorg/pfr/pull/152"&gt;PR#152&lt;/a&gt;!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed unused implementation details. Thanks to &lt;a href="https://github.com/denzor200"&gt;Denis
Mikhailov&lt;/a&gt; for the PR &lt;a href="https://github.com/boostorg/pfr/pull/154"&gt;PR#154&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Allow throwing exceptions 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;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;structure_to_tuple&lt;/span&gt;&lt;/code&gt;.
Thanks to &lt;a href="https://github.com/denzor200"&gt;Denis Mikhailov&lt;/a&gt;
for the bug report &lt;a href="https://github.com/boostorg/pfr/issues/155"&gt;#155&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Field reflection trick is now described in the docs. Thanks to all
the discussion participans in &lt;a href="https://github.com/boostorg/pfr/issues/150"&gt;#150&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/random/"&gt;Random&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added splitmix64 PRNG &lt;a href="https://github.com/boostorg/random/pull/89"&gt;PR#89&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;
C++03 is no longer supported; a C++11 compiler is required. (This
includes GCC 4.8 or later, and MSVC 14.0 (VS 2015) or later.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The deprecated 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;system&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;cygwin_error&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
has been removed.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
The original and obsolete (32 bit) MinGW is no longer supported.
MinGW-w64 (both 64 and 32 bit) is still supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;&amp;amp;&lt;/span&gt;&lt;/code&gt;
now works for &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; (by way of taking a nullary function.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;|=&lt;/span&gt;&lt;/code&gt;
for &lt;code&gt;&lt;span class="identifier"&gt;result&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;
&lt;strong&gt;Big new feature: stacktrace from arbitrary
exception&lt;/strong&gt;. On some POSIX platforms &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;stacktrace&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;from_current_exception&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; now returns the stacktrace of the
current exception object as if the stacktrace was captures at the
point of throwing the exception. Many thanks to Andrei Nekrashevich
for prototyping the idea in &lt;code&gt;&lt;span class="identifier"&gt;libsfe&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed memory consumption on Windows with &lt;code&gt;&lt;span class="identifier"&gt;boost_stacktrace_windbg&lt;/span&gt;&lt;/code&gt;.
Thanks to &lt;a href="https://github.com/ycyclop"&gt;ycyclop&lt;/a&gt;
for reporting the issue &lt;a href="https://github.com/boostorg/stacktrace/issues/111"&gt;#111&lt;/a&gt;, to &lt;a href="https://github.com/correa"&gt;Thiago
A. Correa&lt;/a&gt; for providing more information, to &lt;a href="https://github.com/akarpovskii"&gt;Andrei
Karpovskii&lt;/a&gt; for providing a possible fix.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed library build with non hidden visibility. Thanks to &lt;a href="https://github.com/JBouwer"&gt;Jan Bouwer&lt;/a&gt; for the report
and information on how to fix it.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a separate section on async signal safety to the docs. Many
thanks to &lt;a href="https://github.com/tworonix"&gt;tworonix&lt;/a&gt;
for highlighting the problem in &lt;a href="https://github.com/boostorg/stacktrace/issues/131"&gt;#131&lt;/a&gt;
and to &lt;a href="https://github.com/itrofimow"&gt;itrofimow&lt;/a&gt;
for information on the problem.
&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/stl_interfaces/"&gt;STLInterfaces&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Change the behavior of &lt;code&gt;&lt;span class="identifier"&gt;iterator_interface&lt;/span&gt;&lt;/code&gt;
for input iterators in C++20 and later, to more closely follow the
C++20 concepts.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove hidden friends from &lt;code&gt;&lt;span class="identifier"&gt;iterator_interface&lt;/span&gt;&lt;/code&gt;
to fix errors about concepts being redefined with different constraints.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add a new &lt;code&gt;&lt;span class="identifier"&gt;v3&lt;/span&gt;&lt;/code&gt; inline
namespace, containing a new iterator_interface based on deducing
this instead of CRTP (C++23 and later).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add an rvalue-qualified overload of &lt;code&gt;&lt;span class="identifier"&gt;closure&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;, to prevent dangling temporaries.
&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;
Respect library-spcific _NO_LIB macros &lt;a href="https://github.com/boostorg/test/pull/406"&gt;PR#406&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Supress MSVC C4702 from __builtin_unreachable() on intentionally
unreachable code
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix boost::function streaming error &lt;a href="https://github.com/boostorg/test/pull/411"&gt;PR#411&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/unordered/"&gt;Unordered&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Optimized &lt;code&gt;&lt;span class="identifier"&gt;emplace&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; for a &lt;code&gt;&lt;span class="identifier"&gt;value_type&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;init_type&lt;/span&gt;&lt;/code&gt; (if
applicable) argument to bypass creating an intermediate object. The
argument is already the same type as the would-be intermediate object.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Optimized &lt;code&gt;&lt;span class="identifier"&gt;emplace&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt; for &lt;code&gt;&lt;span class="identifier"&gt;k&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt;&lt;span class="identifier"&gt;v&lt;/span&gt;&lt;/code&gt;
arguments on map containers to delay constructing the object until
it is certain that an element should be inserted. This optimization
happens when the maps &lt;code&gt;&lt;span class="identifier"&gt;key_type&lt;/span&gt;&lt;/code&gt;
is move constructible or when the &lt;code&gt;&lt;span class="identifier"&gt;k&lt;/span&gt;&lt;/code&gt;
argument is a &lt;code&gt;&lt;span class="identifier"&gt;key_type&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed support for allocators with explicit copy constructors (&lt;a href="https://github.com/boostorg/unordered/pull/234"&gt;PR#234&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bug in the &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;/code&gt;
version of &lt;code&gt;&lt;span class="identifier"&gt;unordered_multimap&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;find&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;k&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;hash&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;eq&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; (&lt;a href="https://github.com/boostorg/unordered/pull/238"&gt;PR#238&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;
Removed more of the pre-C++11 macro and workarounds.
&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;
Fixed bugs:
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/wave/issues/200"&gt;#200&lt;/a&gt;: Emitted pragmas lack terminating newline
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/wave/issues/202"&gt;#202&lt;/a&gt;: YYMARKER not updated when fill called on BOOST_WAVE_BSIZE
boundary
&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_85_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/build/"&gt;Build&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Includes release of &lt;a href="https://www.boost.org/tools/build/doc/html/#_version_5_1_0"&gt;B2
version 5.1.0&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_85_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, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++03: 4.6.3, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++11: 4.7.3, 4.8.5, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
&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, C++03: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++11: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++14: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++17: 11.0.3
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Apple Clang, C++20: 11.0.3
&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;
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
&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_85_0.acknowledgements"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Acknowledgements&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Marshall Clow and Glen Fernandes managed this release.
&lt;/p&gt;
&lt;/div&gt;
</description></item>
</channel>
</rss>