2
0
mirror of https://github.com/boostorg/website.git synced 2026-01-19 04:42:17 +00:00
Files
website/generated/dev.rss
2024-11-16 02:08:42 +00:00

6615 lines
336 KiB
XML
Raw 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>Release notes for work in progress boost</title>
<link>https://www.boost.org/</link>
<atom:link href="https://www.boost.org/generated/dev.rss" rel="self" type="application/rss+xml" />
<description></description>
<language>en-us</language>
<copyright>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)</copyright>
<item><title>Version 1.87.x</title><link>https://www.boost.org/users/history/version_1_87_x.html</link><guid>https://www.boost.org/users/history/version_1_87_x.html</guid><pubDate>Sat, 16 Nov 2024 02:07:21 +0000</pubDate><description>
&lt;div id="version_1_87_x.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/doc/libs/1_87_0_beta1/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_x.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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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
main&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;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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/doc/libs/1_87_0_beta1/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_x.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;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_x.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><item><title>Version 1.84.0</title><link>https://www.boost.org/users/history/version_1_84_0.html</link><guid>https://www.boost.org/users/history/version_1_84_0.html</guid><pubDate>Wed, 13 Dec 2023 23:54:29 +0000</pubDate><description>
&lt;div id="version_1_84_0.updated_default_target_windows_v"&gt;
&lt;h3&gt;&lt;span class="link"&gt;Updated
default target Windows version&lt;/span&gt;&lt;/h3&gt;
&lt;p&gt;
Boost.WinAPI, a library that is used internally by other Boost libraries for
defining Windows SDK components, has been updated to target Windows 10 API
by default, where possible. This means that Boost libraries will target Windows
10 by default and may not run on older Windows versions. This includes the
pre-built binaries that are distributed by Boost.
&lt;/p&gt;
&lt;p&gt;
The affected libraries include:
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Atomic
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Beast
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Chrono
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.DateTime
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.DLL
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Filesystem
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Interprocess
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Log
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Pool
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Process
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.System
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Stacktrace
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.Thread
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Boost.UUID
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;
as well as libraries that depend on the above.
&lt;/p&gt;
&lt;p&gt;
Users are able to change the default by defining &lt;code&gt;&lt;span class="identifier"&gt;BOOST_USE_WINAPI_VERSION&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;_WIN32_WINNT&lt;/span&gt;&lt;/code&gt; when building
and using Boost to the required version number. For example, to build Boost
targeting Windows 7 one could use a command line like this:
&lt;/p&gt;
&lt;pre&gt; b2 variant=release define=BOOST_USE_WINAPI_VERSION=0x0601 stage
&lt;/pre&gt;
&lt;p&gt;
Note, however, that individual libraries may have their own requirements on
the minimum supported Windows version.
&lt;/p&gt;
&lt;p&gt;
The list of Windows API version numbers can be seen on &lt;a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx"&gt;this&lt;/a&gt;
page.
&lt;/p&gt;
&lt;/div&gt;
&lt;div id="version_1_84_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/cobalt/"&gt;Cobalt&lt;/a&gt;:&lt;/span&gt; Basic algorithms and types
for C++20 coroutines, from Klemens Morgenstern.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/redis/"&gt;Redis&lt;/a&gt;:&lt;/span&gt; Redis async client library
built on top of Boost.Asio, from Marcelo Zimbres Silva.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_84_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;
C++03 is no longer supported &lt;a href="https://github.com/boostorg/any/pull/26"&gt;PR#26&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed reference documentation generation. Now it is not overwritten
by Boost.PFR reference. Thanks to Peter Dimov for the debugging.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Changed to require C++11 as the minimum language standard. C++03
is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed deprecated functionality from 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;execution&lt;/span&gt;&lt;/code&gt;
namespace.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed deprecated invocation and allocation hooks.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;try_send_via_dispatch&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;try_send_n_via_dispatch&lt;/span&gt;&lt;/code&gt;
functions to channels.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added compatibility between Asio's placeholders 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;bind&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved C++11 support for channels that have multiple completion
signatures.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compatibility between channel asynchronous operations and
&lt;code&gt;&lt;span class="identifier"&gt;any_completion_handler&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compatibility between &lt;code&gt;&lt;span class="identifier"&gt;any_completion_handler&lt;/span&gt;&lt;/code&gt;
and compilation using &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;
Added missing equality operators for comparing mixed executor property
types belonging to the same category.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed an issue where &lt;code&gt;&lt;span class="identifier"&gt;spawn&lt;/span&gt;&lt;/code&gt;-based
stackful coroutines would terminate the program when used with asynchronous
operations that have a completion signature starting 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;exception_ptr&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a crash that may occur when attempting to access a default-constructed
&lt;code&gt;&lt;span class="identifier"&gt;any_completion_handler&lt;/span&gt;&lt;/code&gt;
object's associators.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;ssl&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;stream&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
class's &lt;code&gt;&lt;span class="identifier"&gt;async_handshake&lt;/span&gt;&lt;/code&gt;
operation so that it works with a defaulted completion token.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Updated all examples to use C++11 as the minimum language standard.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported, the minimum required language version
is C++11.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for x87 extended double with reduced precision, which
is used on FreeBSD and OpenBSD. (&lt;a href="https://github.com/boostorg/atomic/issues/14"&gt;#14&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for Windows versions older than Windows 10 is deprecated
and will be removed in Boost 1.87.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Support for &lt;code&gt;&lt;span class="identifier"&gt;immediate_executor&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove deprecated allocation and invocation hooks.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use the explicit type std::size_t when completing transfer_op.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Replaced &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_INITFN_RESULT_TYPE&lt;/span&gt;&lt;/code&gt;
with &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ASIO_INITFN_AUTO_RES&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;server&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;flex&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;awaitable&lt;/span&gt;&lt;/code&gt; example resets parser.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Corrected the &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_ping&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;pong&lt;/span&gt;&lt;/code&gt;
handler requirement.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Update documentation 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;async_write_some&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/chrono/"&gt;Chrono&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported &lt;a href="https://github.com/boostorg/conversion/pull/27"&gt;PR#27&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;
&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;swap&lt;/span&gt;&lt;/code&gt; utility function has been
renamed 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;invoke_swap&lt;/span&gt;&lt;/code&gt;
to avoid forming a potential infinite recursion when the arguments
are not swappable. The new function is defined 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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;invoke_swap&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
and is functionally equivalent 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;swap&lt;/span&gt;&lt;/code&gt;.
The old &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;swap&lt;/span&gt;&lt;/code&gt; name is preserved for backward
compatibility but deprecated and will be removed in a future release.
Its &lt;code&gt;&lt;span class="keyword"&gt;noexcept&lt;/span&gt;&lt;/code&gt; specification
has been removed to avoid compile errors caused by compile-time recursion.
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_ALLOW_DEPRECATED_SYMBOLS&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ALLOW_DEPRECATED&lt;/span&gt;&lt;/code&gt;
can be defined to suppress deprecation warnings for the transition
period. (&lt;a href="https://github.com/boostorg/core/issues/148"&gt;#148&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Headers &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;swap&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;boost&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;utility&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;swap&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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;swap&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; are deprecated and will be
removed. Please, switch 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;invoke_swap&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;BOOST_ALLOW_DEPRECATED_HEADERS&lt;/span&gt;&lt;/code&gt;
or &lt;code&gt;&lt;span class="identifier"&gt;BOOST_ALLOW_DEPRECATED&lt;/span&gt;&lt;/code&gt;
can be defined to suppress deprecation warnings.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 support is deprecated and will be removed in release 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/dll/"&gt;DLL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported &lt;a href="https://github.com/boostorg/dll/pull/66"&gt;PR#66&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/endian/"&gt;Endian&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 Boost 1.82.0, C++03 is no longer supported. A
C++11 or later compiler is required.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed that some &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt;
observers taking &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 did not clear the error code on successful return. (&lt;a href="https://github.com/boostorg/filesystem/issues/291"&gt;#291&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, improved robustness of date and time conversion and added
support for dates before January 1, 1970. (&lt;a href="https://github.com/boostorg/filesystem/issues/293"&gt;#293&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed support for Windows CE that was deprecated since Boost.Filesystem
1.79.0.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Removed &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;string_file&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; header. The header was deprecated
since Boost.Filesystem 1.79.0.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;strong&gt;Deprecated:&lt;/strong&gt; Support for Windows
versions older than Windows 10 is deprecated and will be removed
in Boost 1.87.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Solved issues
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1138"&gt;#1138&lt;/a&gt; Fix difference of two polygons
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1183"&gt;#1183&lt;/a&gt; Fix for union_ incomplete result polygon
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1184"&gt;#1184&lt;/a&gt; Fix for intersection
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1186"&gt;#1186&lt;/a&gt; Fix for union_ improper inner ring assignment
&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/heap/"&gt;Heap&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 support is deprecated and will be removed in release 1.86.
New requirement will be C++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/json/"&gt;JSON&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Implement parsing directly into user types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add conversion categories for optionals and variants.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Relax iterator requirements for constructors from iterator pairs.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix reading beyond input buffer.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix inconsistent choice of init list constructor.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
class result&amp;lt;T&amp;gt; marked nodiscard.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added member typedef result&amp;lt;T&amp;gt;::value_type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
verbose_diagnostic_info defers conversion to string until an error
handling scope is reached.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for embedded development.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved Visual Studio 2015 compatibility (thanks godmaycrying).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Minor bug fixes an improvements.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped support for GCC 4.8 and 4.9.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported &lt;a href="https://github.com/boostorg/lexical_cast/pull/62"&gt;PR#62&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed -Wdeprecated-copy-with-dtor warnings with clang. Thanks to
&lt;a href="https://github.com/Romain-Geissler-1A"&gt;Romain Geissler&lt;/a&gt;
for the PR &lt;a href="https://github.com/boostorg/lexical_cast/pull/59"&gt;PR#59&lt;/a&gt;!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped dependency on Boost.Range &lt;a href="https://github.com/boostorg/lexical_cast/pull/63"&gt;PR#63&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;
&lt;code&gt;&lt;span class="identifier"&gt;to_title&lt;/span&gt;&lt;/code&gt; for the
WinAPI backend returns the string unchanged instead of an empty string
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improved support for &lt;code&gt;&lt;span class="identifier"&gt;char8_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;u8string&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix off-by-one error when using negative times &lt;a href="https://github.com/boostorg/locale/pull/198"&gt;PR#198&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix escape-handling of curly braces in format strings &lt;a href="https://github.com/boostorg/locale/issues/194"&gt;#194&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix some build errors and warnings, notably one on MSVC, see &lt;a href="https://github.com/boostorg/locale/issues/189"&gt;#189&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/lockfree/"&gt;Lockfree&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 support is deprecated and will be removed in release 1.86.
New requirement will be C++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/log/"&gt;Log&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported. A C++11 or later compiler is required.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
When built with C++11 compilers that are conforming enough for Boost.Regex
v5 to be used, Boost.Log no longer links with Boost.Regex prebuilt
library, since Boost.Regex v5 is header-only.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for Windows versions older than Windows 10 is deprecated
and will be removed in Boost 1.87.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Improve ccmath error detection.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Remove use of deprecated std::numeric_limits&amp;lt;&amp;gt;::has_denorm,
see &lt;a href="https://github.com/boostorg/math/issues/1028"&gt;1028&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correct non-convergence bug in non-central-t distribution, see &lt;a href="https://github.com/boostorg/math/issues/1035"&gt;1035&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Adjust Bessel function approximation to [sub 1]F[sub 1] to avoid
taking tgamma at a negative integer, see &lt;a href="https://github.com/boostorg/math/issues/1034"&gt;1034&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Avoid spurious overflow and divide by zero in ibeta, see &lt;a href="https://github.com/boostorg/math/issues/1006"&gt;1006&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve accuracy when using Sterling's approximation to tgamma, completes
work started in &lt;a href="https://github.com/boostorg/math/pull/1007"&gt;1007&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix inverse_discrete_quantile for large initial guesses, see &lt;a href="https://github.com/boostorg/math/pull/1007"&gt;1007&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Improve Newton root finding, see &lt;a href="https://github.com/boostorg/math/pull/1000"&gt;1000&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix median_absolute_deviation for non-zero centre, see &lt;a href="https://github.com/boostorg/math/pull/997"&gt;997&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix up cstdfloat.hpp for gcc-14.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Update to work for the new types declared in &amp;lt;stdfloat&amp;gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Change hypergeometric_distribution to use 64 rather than 32 bit integers
to avoid unnecessary overflow and restrictions on use.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 a serialization-related compile-time bug in old compilers without
ADL support (issue &lt;a href="https://github.com/boostorg/multi_index/issues/70"&gt;#70&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;
Change &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;array&lt;/span&gt;&lt;/code&gt; to &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;array&lt;/span&gt;&lt;/code&gt;
in the tests, fixes &lt;a href="https://github.com/boostorg/multiprecision/issues/567"&gt;567&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Correct cpp_int::eval_convert_to to be noexcept, fixes &lt;a href="https://github.com/boostorg/multiprecision/issues/553"&gt;553&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Make sure that changing the global precision, also changes the current
thread precision.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix rational_adaptor construction bug, fixes &lt;a href="https://github.com/boostorg/multiprecision/issues/540"&gt;540&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;
Added &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;reset_connection&lt;/span&gt;&lt;/code&gt;
and &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;async_reset_connection&lt;/span&gt;&lt;/code&gt;. These functions
clean session state (including prepared statements, variables, locks
and more) without closing and re-opening the connection.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added error codes introduced in MySQL server v8.1.0.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added fuzz testing for the deserialization functions.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;strong&gt;Big new feature: field names reflection&lt;/strong&gt;.
Added new &lt;code&gt;&lt;span class="keyword"&gt;constexpr&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;pfr&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;get_name&lt;/span&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;N&lt;/span&gt;&lt;span class="special"&gt;,&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;
function that returns 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;string_view&lt;/span&gt;&lt;/code&gt;
with a name of field at index &lt;code&gt;&lt;span class="identifier"&gt;N&lt;/span&gt;&lt;/code&gt;
of an aggregate &lt;code&gt;&lt;span class="identifier"&gt;T&lt;/span&gt;&lt;/code&gt;.
Requires C++20. &lt;code&gt;&lt;span class="identifier"&gt;BOOST_PFR_CORE_NAME_ENABLED&lt;/span&gt;&lt;/code&gt;
is defined to 1 if the functionality is available. Many thanks to
&lt;a href="https://github.com/denzor200"&gt;Denis Mikhailov&lt;/a&gt;,
&lt;a href="https://github.com/schaumb"&gt;Bela Schaum&lt;/a&gt; and
&lt;a href="https://github.com/X-Ryl669"&gt;X-Ryl669&lt;/a&gt; for the
PR &lt;a href="https://github.com/boostorg/pfr/pull/129"&gt;PR#129&lt;/a&gt;
and implementation ideas.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;for_each_field&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;
is now &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; for
C++17. Many thanks to &lt;a href="https://github.com/alexkaratarakis"&gt;Alexander
Karatarakis&lt;/a&gt; for the PR &lt;a href="https://github.com/boostorg/pfr/pull/134"&gt;PR#134&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/predef/"&gt;Predef&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Version 1.15.0
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Add detection of Microsoft STL (from Henrik Gaßmann).
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed overflows in tests using Boost.Multiprecision
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/ratio/"&gt;Ratio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for &lt;code&gt;&lt;span class="identifier"&gt;BOOST_RATIO_EXTENSIONS&lt;/span&gt;&lt;/code&gt;
has been removed. Ratio is now implemented in terms of the standard
&lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;ratio&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; header.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported. Thanks to &lt;a href="https://github.com/leha-bot"&gt;Alex&lt;/a&gt;
for the PR &lt;a href="https://github.com/boostorg/stacktrace/pull/139"&gt;PR#139&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;addr2line&lt;/span&gt;&lt;/code&gt; for
pie binaries. Thanks to &lt;a href="https://github.com/ja2142"&gt;ja2142&lt;/a&gt;
for the PR &lt;a href="https://github.com/boostorg/stacktrace/pull/138"&gt;PR#138&lt;/a&gt;!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed build with MinGW-w64 12+. Thanks to &lt;a href="https://github.com/yhsb2k"&gt;yhsb2k&lt;/a&gt;
for the PR &lt;a href="https://github.com/boostorg/stacktrace/pull/140"&gt;PR#140&lt;/a&gt;!
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added missing include. Thanks to &lt;a href="https://github.com/francesco-ballarin"&gt;Francesco
Ballarin&lt;/a&gt; for the PR &lt;a href="https://github.com/boostorg/stacktrace/pull/143"&gt;PR#143&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;
Added support 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="identifier"&gt;U&lt;/span&gt;&lt;span class="special"&gt;&amp;amp;,&lt;/span&gt; &lt;span class="identifier"&gt;E&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;.
&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;li&gt;
&lt;div&gt;
Added &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;
for &lt;code&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;
Added &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;
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/test/"&gt;Test&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed useage of PRIxPTR for glibc 2.2 - 2.17 &lt;a href="https://github.com/boostorg/test/pull/392"&gt;PR#392&lt;/a&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed MSVC warning C5263: calling 'std::move' on a temporary object
prevents copy elision &lt;a href="https://github.com/boostorg/test/pull/390"&gt;PR#390&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/thread/"&gt;Thread&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS&lt;/span&gt;&lt;span class="special"&gt;((&lt;/span&gt;&lt;span class="identifier"&gt;A&lt;/span&gt;&lt;span class="special"&gt;)(&lt;/span&gt;&lt;span class="identifier"&gt;B&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;D&lt;/span&gt;&lt;span class="special"&gt;))&lt;/span&gt;&lt;/code&gt; changed syntax to &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;A&lt;/span&gt;&lt;span class="special"&gt;,&lt;/span&gt; &lt;span class="identifier"&gt;B&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;D&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;
Dropped Boost.PP dependency.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/typeof/"&gt;TypeOf&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
C++03 is no longer supported.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 &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;.
&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;c&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;span class="identifier"&gt;visit_while&lt;/span&gt;&lt;/code&gt;
operations to concurrent containers, with serial and parallel variants.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added efficient move construction 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;unordered_flat_&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;map&lt;/span&gt;&lt;span class="special"&gt;|&lt;/span&gt;&lt;span class="identifier"&gt;set&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; from &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;concurrent_flat_&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;map&lt;/span&gt;&lt;span class="special"&gt;|&lt;/span&gt;&lt;span class="identifier"&gt;set&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt; and vice versa.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added bulk visitation to concurrent containers for increased lookup
performance.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added debug-mode mechanisms for detecting illegal reentrancies into
a concurrent container from user code.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added Boost.Serialization support to all containers and their (non-local)
iterator types.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for fancy pointers to open-addressing and concurrent
containers. This enables scenarios like the use of Boost.Interprocess
allocators to construct containers in shared memory.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed bug in member of pointer operator for local iterators of closed-addressing
containers (&lt;a href="https://github.com/boostorg/unordered/pull/221"&gt;PR#221&lt;/a&gt;, credit goes to GitHub user vslashg
for finding and fixing this issue).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Starting with this release, &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;multi&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;span class="identifier"&gt;set&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;unordered_&lt;/span&gt;&lt;span class="special"&gt;[&lt;/span&gt;&lt;span class="identifier"&gt;multi&lt;/span&gt;&lt;span class="special"&gt;]&lt;/span&gt;&lt;span class="identifier"&gt;map&lt;/span&gt;&lt;/code&gt; only work with C++11 onwards.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
C++03 is no longer supported &lt;a href="https://github.com/boostorg/variant/pull/107"&gt;PR#107&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Dropped Boost.Move and Boost.Bind dependencies.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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/188"&gt;#188&lt;/a&gt;: Segmentation fault when "#pragma\n" is encountered
&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_84_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_84_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><item><title>Version 1.83.0</title><link>https://www.boost.org/users/history/version_1_83_0.html</link><guid>https://www.boost.org/users/history/version_1_83_0.html</guid><pubDate>Fri, 11 Aug 2023 16:23:02 +0000</pubDate><description>
&lt;div id="version_1_83_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;
JSON
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Compilation on Windows ARM platforms may fail for missing intrinsics,
see &lt;a href="https://github.com/boostorg/json/issues/926"&gt;#926&lt;/a&gt; and &lt;a href="https://github.com/boostorg/json/issues/927"&gt;#927&lt;/a&gt;. &lt;a href="https://github.com/boostorg/json/commit/c4ce8509d015a0b75cfa9d36609b8409821a9c86.patch"&gt;Patch&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Unordered
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fix erroneous copy assigment operator that would destroy non-existent
elements, see &lt;a href="https://github.com/boostorg/unordered/issues/205"&gt;#205&lt;/a&gt;. &lt;a href="https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.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_83_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/compat/"&gt;Compat&lt;/a&gt;:&lt;/span&gt; A repository of C++11
implementations of standard components added in later C++ standards, from
Peter Dimov and contributors.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_83_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;
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;anys&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;unique_any&lt;/span&gt;&lt;/code&gt; C++11 class - an alternative
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;any&lt;/span&gt;&lt;/code&gt; (or 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;any&lt;/span&gt;&lt;/code&gt;)
that does not require copy or move construction from the held type.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Ported documentation to Quickbook, Doxygen comments now used in 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/atomic/"&gt;Atomic&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed compilation of &lt;code&gt;&lt;span class="identifier"&gt;atomic_ref&lt;/span&gt;&lt;/code&gt;
for &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;/code&gt;-qualified
types. Note that even &lt;code&gt;&lt;span class="keyword"&gt;const&lt;/span&gt;&lt;/code&gt;-qualified
atomic objects must still reside in read-write memory. (&lt;a href="https://github.com/boostorg/atomic/issues/62"&gt;#62&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/chrono/"&gt;Chrono&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Remove use of deprecated Boost.Ratio features.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;latch&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;, an implementation of &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;latch&lt;/span&gt;&lt;/code&gt; (contributed by Christian
Mazakas.)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;shared_lock&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;,
a (partial) implementation of &lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;shared_lock&lt;/span&gt;&lt;/code&gt;
(contributed by Christian Mazakas.)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 support for incomplete types 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;type_name&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Bit manipulation functions 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;core&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;bit&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
are now &lt;code&gt;&lt;span class="keyword"&gt;constexpr&lt;/span&gt;&lt;/code&gt; on
recent MSVC versions (VS2019 update 5 and later.)
&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;core&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;byteswap&lt;/span&gt;&lt;/code&gt; (an implementation of
&lt;code&gt;&lt;span class="identifier"&gt;std&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;byteswap&lt;/span&gt;&lt;/code&gt; from C++23) 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;bit&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;
Moved the yield primitives &lt;code&gt;&lt;span class="identifier"&gt;sp_thread_pause&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;sp_thread_yield&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;sp_thread_sleep&lt;/span&gt;&lt;/code&gt; from
SmartPtr implementation details 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;yield_primitives&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/dll/"&gt;DLL&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Fixed tests failures on glibc 2.36+, thanks to &lt;a href="https://github.com/sgn"&gt;Đoàn
Trần Công Danh&lt;/a&gt; for the bugreport &lt;a href="https://github.com/boostorg/dll/issues/58"&gt;#58&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/filesystem/"&gt;Filesystem&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &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;
method that updates internal cached file statuses for the directory
entry identified by path.
&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;directory_entry&lt;/span&gt;&lt;/code&gt;
constructors and modifiers that initialize or modify the path now
automatically call &lt;code&gt;&lt;span class="identifier"&gt;refresh&lt;/span&gt;&lt;/code&gt;.
This may result in errors that were not indicated before and in
&lt;strong&gt;v3&lt;/strong&gt;, if querying the filesystem for
file statuses fails (e.g. if the file does not exist). This new behavior
is similar to std::filesystem.
&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;directory_entry&lt;/span&gt;&lt;/code&gt;
constructors and methods taking &lt;code&gt;&lt;span class="identifier"&gt;file_status&lt;/span&gt;&lt;/code&gt;
parameters are removed. Users are recommended to remove these arguments
and rely on &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt;
calling &lt;code&gt;&lt;span class="identifier"&gt;refresh&lt;/span&gt;&lt;/code&gt; internally.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;directory_entry&lt;/span&gt;&lt;/code&gt;
member methods for checking the file type of the file, similar to
std::filesystem.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added more methods for testing file status: &lt;code&gt;&lt;span class="identifier"&gt;is_block_file&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;is_character_file&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;is_fifo&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;is_socket&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="identifier"&gt;is_reparse_file&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;recursive_directory_iterator&lt;/span&gt;&lt;/code&gt;
is now more likely to reuse information about the file type that
is obtained during filesystem iteration. This may improve performance.
(&lt;a href="https://github.com/boostorg/filesystem/issues/288"&gt;#288&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
File streams defined 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;filesystem&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;fstream&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
are now movable, if the standard library file streams are. (&lt;a href="https://github.com/boostorg/filesystem/issues/280"&gt;#280&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added a new 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;filesystem&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;cstdio&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;
with a portable &lt;code&gt;&lt;span class="identifier"&gt;fopen&lt;/span&gt;&lt;/code&gt;
overload that takes &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt;
as the first argument. This function is equivalent 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;fopen&lt;/span&gt;&lt;/code&gt;, except that on Windows it
uses the native wide character encoding for paths.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Generic &lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt; comparison
operators are now more restricted to avoid potential ambiguities
when user's code contains a &lt;code&gt;&lt;span class="keyword"&gt;using&lt;/span&gt;
&lt;span class="keyword"&gt;namespace&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;filesystem&lt;/span&gt;&lt;span class="special"&gt;;&lt;/span&gt;&lt;/code&gt; directive. (&lt;a href="https://github.com/boostorg/filesystem/issues/285"&gt;#285&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed potential overload resolution ambiguity in users' code, where
&lt;code&gt;&lt;span class="identifier"&gt;path&lt;/span&gt;&lt;/code&gt; constructors
from iterators could interfere with function overloads taking 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;initializer_list&lt;/span&gt;&lt;/code&gt; argument. (&lt;a href="https://github.com/boostorg/filesystem/issues/287"&gt;#287&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, added more workarounds for errors returned by various
filesystems when creating a directory iterator. (&lt;a href="https://github.com/boostorg/filesystem/issues/284"&gt;#284&lt;/a&gt;,
&lt;a href="https://github.com/boostorg/filesystem/issues/286"&gt;#286&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
On Windows, relaxed access rights needed for querying file times.
(&lt;a href="https://github.com/boostorg/filesystem/issues/290"&gt;#290&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 smart-pointer syntax 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;flyweight&lt;/span&gt;&lt;/code&gt;
(&lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;*&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="keyword"&gt;operator&lt;/span&gt;&lt;span class="special"&gt;-&amp;gt;&lt;/span&gt;&lt;/code&gt;
dereferencing to the underlying value).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed a situation where the mutex used by &lt;a href="https://www.boost.org/libs/flyweight/doc/reference/locking.html#simple_locking_synopsis"&gt;&lt;code&gt;&lt;span class="identifier"&gt;simple_locking&lt;/span&gt;&lt;/code&gt;&lt;/a&gt; was not
recursive (issue &lt;a href="https://github.com/boostorg/flyweight/issues/12"&gt;#12&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;
&lt;a href="https://github.com/boostorg/geometry/pull/1140"&gt;PR#1140&lt;/a&gt; Drop dependencies and replace boost with
std in several places
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1154"&gt;PR#1154&lt;/a&gt; Add missing headers so that all headers
compile independently complying with Boost policy
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/pull/1157"&gt;PR#1157&lt;/a&gt; Check const Ring concept in calculate_point_order
&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/1100"&gt;#1100&lt;/a&gt; Fix for union
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1139"&gt;#1139&lt;/a&gt; Fix for different geometry types
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1158"&gt;#1158&lt;/a&gt; Fix for convex hull
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;a href="https://github.com/boostorg/geometry/issues/1161"&gt;#1161&lt;/a&gt; Fix within algorithm for geometries having
a pole as a vertex
&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;
Added &lt;code&gt;&lt;span class="identifier"&gt;is_iterator&lt;/span&gt;&lt;/code&gt;
type trait that allows to test whether the type qualifies as an iterator
type.
&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; now
supports move-construction of the adopted iterator and the function
object. (&lt;a href="https://github.com/boostorg/iterator/pull/79"&gt;PR#79&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;
The library now only throws &lt;code&gt;&lt;span class="identifier"&gt;system_error&lt;/span&gt;&lt;/code&gt;,
except for when allocation failed, in which case &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;bad_alloc&lt;/span&gt;&lt;/code&gt;
is thrown.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Serialization behavior can now be changed by &lt;code&gt;&lt;span class="identifier"&gt;serialize_options&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Contextual conversions.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Parser option for more precise number parsing.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support &lt;code&gt;&lt;span class="identifier"&gt;parse_options&lt;/span&gt;&lt;/code&gt;
in stream &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;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Parser option to allow &lt;code&gt;&lt;span class="identifier"&gt;Infinity&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;NaN&lt;/span&gt;&lt;/code&gt; JSON literals.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Parser mode that only validates numbers rather than parsing them.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Numbers with exponent larger than &lt;code&gt;&lt;span class="identifier"&gt;INT_MAX&lt;/span&gt;&lt;/code&gt;
are accepted by the parser and treated as infinity.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix &lt;code&gt;&lt;span class="identifier"&gt;object&lt;/span&gt;&lt;/code&gt; member
functions that should provide strong guarantee.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix ambiguity of &lt;code&gt;&lt;span class="identifier"&gt;end&lt;/span&gt;&lt;/code&gt;
call when &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;range&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt; is included.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix ASan failures.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix error message for &lt;code&gt;&lt;span class="identifier"&gt;error&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;size_mismatch&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix conversion into tuple with const elements.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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/index.html"&gt;Locale&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Bitwise/binary operators (left/right shift, binary and/or/xor/not)
are no longer supported in message catalog files matching GNU gettext
behavior
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Std backend on Windows uses the classic locale instead of the system
locale when the requested locale does not exist (now same as on other
OSs)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;localization_backend_manager&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;get&lt;/span&gt;&lt;/code&gt;
is deprecated, use the generator instead
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
New converter classes as alternative to &lt;code&gt;&lt;span class="identifier"&gt;to_utf&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;from_utf&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;between&lt;/span&gt;&lt;/code&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix UB on invalid index in format strings
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix conversion of UTF to e.g. iso-2022-jp on Windows without ICU
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Use &lt;code&gt;&lt;span class="keyword"&gt;long&lt;/span&gt; &lt;span class="keyword"&gt;long&lt;/span&gt;&lt;/code&gt;
as the count parameter for pluralized translations
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fix movability and exception specification for some classes
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Fixed a possible infinite loop in &lt;code&gt;&lt;span class="identifier"&gt;text_file_backend&lt;/span&gt;&lt;/code&gt;,
when the size of a formatted log record exceeds the &lt;code&gt;&lt;span class="identifier"&gt;rotation_size&lt;/span&gt;&lt;/code&gt; limit. (&lt;a href="https://github.com/boostorg/log/issues/209"&gt;#209&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 Numerical evaluation of Fourier transform of Daubechies scaling
functions &lt;a href="https://github.com/boostorg/math/pull/921"&gt;921&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added logcdf function to statistical distributions &lt;a href="https://github.com/boostorg/math/pull/946"&gt;946&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for C++23's &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;stdfloat&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
types &lt;a href="https://github.com/boostorg/math/pull/978"&gt;978&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed various &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wmaybe&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;uninitialized&lt;/span&gt;&lt;/code&gt;
warnings
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;round&lt;/span&gt;&lt;/code&gt; and
&lt;code&gt;&lt;span class="identifier"&gt;trunc&lt;/span&gt;&lt;/code&gt; functions for
non-representable numbers &lt;a href="https://github.com/boostorg/math/pull/968"&gt;968&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed calculation of mode for F-distribution &lt;a href="https://github.com/boostorg/math/pull/976"&gt;976&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed overflow in beta distribution &lt;a href="https://github.com/boostorg/math/pull/977"&gt;977&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed overflow in hypergeometric distribution &lt;a href="https://github.com/boostorg/math/pull/987"&gt;987&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed calculation of median absolute deviation with non-zero center
&lt;a href="https://github.com/boostorg/math/pull/997"&gt;997&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;
Added an offset/from parameter to &lt;code&gt;&lt;span class="identifier"&gt;mp_from_sequence&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_iota&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_iota_c&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;mp_value&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_list_v&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_rename_v&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_is_value_list&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added value list support to the primitives 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;mp11&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;list&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;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added value list support to &lt;code&gt;&lt;span class="identifier"&gt;mp_repeat&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_fill&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_at&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_back&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_take&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_pop_back&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_drop&lt;/span&gt;&lt;/code&gt;,
&lt;code&gt;&lt;span class="identifier"&gt;mp_insert&lt;/span&gt;&lt;/code&gt;, &lt;code&gt;&lt;span class="identifier"&gt;mp_erase&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/multi_index/"&gt;Multi-index Containers&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Updated range &lt;code&gt;&lt;span class="identifier"&gt;insert&lt;/span&gt;&lt;/code&gt;
in non-unique ordered indices to preserve insertion order of equivalent
elements (issue &lt;a href="https://github.com/boostorg/multi_index/issues/68"&gt;#68&lt;/a&gt;).
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Serialization 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;size_t&lt;/span&gt;&lt;/code&gt;
instead of &lt;code&gt;&lt;span class="keyword"&gt;unsigned&lt;/span&gt; &lt;span class="keyword"&gt;long&lt;/span&gt;&lt;/code&gt; to save and load the size of
a &lt;code&gt;&lt;span class="identifier"&gt;multi_index_container&lt;/span&gt;&lt;/code&gt;
(&lt;code&gt;&lt;span class="keyword"&gt;unsigned&lt;/span&gt; &lt;span class="keyword"&gt;long&lt;/span&gt;&lt;/code&gt;
is smaller than &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;size_t&lt;/span&gt;&lt;/code&gt;
in LLP64 data models). &lt;code&gt;&lt;span class="identifier"&gt;multi_index_container&lt;/span&gt;&lt;/code&gt;
serialization &lt;a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning"&gt;class
version&lt;/a&gt; has been bumped from 3 to 4 to reflect this change.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Fixed bug in rational adapter division &lt;a href="https://github.com/boostorg/multiprecision/pull/542"&gt;542&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed handling of global precsion changes in multi-threaded environments
&lt;a href="https://github.com/boostorg/multiprecision/pull/552"&gt;552&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed &lt;code&gt;&lt;span class="identifier"&gt;cpp_int&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;eval_convert_to&lt;/span&gt;&lt;/code&gt; noexcept specification
&lt;a href="https://github.com/boostorg/multiprecision/pull/555"&gt;555&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;Major update.&lt;/strong&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Stored procedures are now fully supported, including &lt;code&gt;&lt;span class="identifier"&gt;SELECT&lt;/span&gt;&lt;/code&gt; statements producing data
and procedures with &lt;code&gt;&lt;span class="identifier"&gt;OUT&lt;/span&gt;&lt;/code&gt;
parameters.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added support for multi-queries, which allows running multiple semicolon-separated
statements with a single call.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
A statically-typed interface has been added, which allows parsing
query results into user-provided types, using &lt;a href="https://www.boost.org/libs/describe/"&gt;Boost.Describe&lt;/a&gt;
structs and tuples.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Text queries and prepared statements can now be executed using the
new &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&lt;/span&gt;&lt;/code&gt; and &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_execution&lt;/span&gt;&lt;/code&gt;
functions (and their async counterparts). These superseed &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;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_query&lt;/span&gt;&lt;/code&gt; and &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;.
The new functions allow access to new features, like the static interface.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
A separate compilation mode has been added to help reduce build times.
Sources are included 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;mysql&lt;/span&gt;&lt;span class="special"&gt;/&lt;/span&gt;&lt;span class="identifier"&gt;src&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;hpp&lt;/span&gt;&lt;/code&gt;,
which must be included in exactly one translation unit.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Prepared statements can now be executed using an iterator pair to
specify parameters, using &lt;code&gt;&lt;span class="identifier"&gt;statement&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;bind&lt;/span&gt;&lt;/code&gt;
and &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&lt;/span&gt;&lt;/code&gt;. This enables use cases
where the number and type of parameters is not known at compile-time.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Prepared statement execution now accepts parameters of type &lt;code&gt;&lt;span class="keyword"&gt;bool&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;optional&lt;/span&gt;&lt;/code&gt;
and &lt;code&gt;&lt;span class="identifier"&gt;boost&lt;/span&gt;&lt;span class="special"&gt;::&lt;/span&gt;&lt;span class="identifier"&gt;optional&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Added error codes and verified compatibility with MySQL v8.0.33 and
MariaDB v11.0.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed potential problems with Windows' &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.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All assertions now use &lt;a href="https://www.boost.org/libs/assert/"&gt;Boost.Assert&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
All exceptions are now thrown via &lt;a href="https://www.boost.org/libs/throw_exception/"&gt;Boost.ThrowException&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Immediate completions are now correctly dispatched through the I/O
object executor.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/ratio/"&gt;Ratio&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Change default &lt;code&gt;&lt;span class="identifier"&gt;BOOST_RATIO_VERSION&lt;/span&gt;&lt;/code&gt;
to 2.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Support for &lt;code&gt;&lt;span class="identifier"&gt;BOOST_RATIO_EXTENSIONS&lt;/span&gt;&lt;/code&gt;
is now deprecated and will eventually be removed when Boost.Ratio
is implemented in terms of the standard &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;ratio&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt;
header.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
Added addtional older platforms to CI system (e.g. GCC 4.6)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed handling of &lt;code&gt;&lt;span class="identifier"&gt;uintptr_t&lt;/span&gt;&lt;/code&gt;
to make sure it is portable on 32-bit systems &lt;a href="https://github.com/boostorg/test/pull/353"&gt;353&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed warnings from &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wdeprecated&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;dtor&lt;/span&gt;&lt;/code&gt; and &lt;code&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;Wdeprecated&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;copy&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;with&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;user&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;provided&lt;/span&gt;&lt;span class="special"&gt;-&lt;/span&gt;&lt;span class="identifier"&gt;dtor&lt;/span&gt;&lt;/code&gt; &lt;a href="https://github.com/boostorg/test/pull/375"&gt;375&lt;/a&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Fixed handling of &lt;code&gt;&lt;span class="identifier"&gt;check_is_close&lt;/span&gt;&lt;/code&gt;
for C++23 &lt;code&gt;&lt;span class="special"&gt;&amp;lt;&lt;/span&gt;&lt;span class="identifier"&gt;stdfloat&lt;/span&gt;&lt;span class="special"&gt;&amp;gt;&lt;/span&gt;&lt;/code&gt; types &lt;a href="https://github.com/boostorg/test/pull/382"&gt;382&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/timer/"&gt;Timer&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Remove dependency on Boost.Chrono, Boost.System, and others.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Disable deprecated headers unless &lt;code&gt;&lt;span class="identifier"&gt;BOOST_TIMER_ENABLE_DEPRECATED&lt;/span&gt;&lt;/code&gt;
is defined.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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 &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_map&lt;/span&gt;&lt;/code&gt;, a fast, thread-safe
hashmap based on open addressing.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
Sped up iteration of open-addressing containers.
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
In open-addressing containers, &lt;code&gt;&lt;span class="identifier"&gt;erase&lt;/span&gt;&lt;span class="special"&gt;(&lt;/span&gt;&lt;span class="identifier"&gt;iterator&lt;/span&gt;&lt;span class="special"&gt;)&lt;/span&gt;&lt;/code&gt;, which previously returned nothing,
now returns a proxy object convertible to an iterator to the next
element. This enables the typical &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;c&lt;/span&gt;&lt;span class="special"&gt;.&lt;/span&gt;&lt;span class="identifier"&gt;erase&lt;/span&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;/code&gt; idiom without incurring any performance
penalty when the returned proxy is not used.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/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;
&lt;code&gt;&lt;span class="identifier"&gt;parse_query&lt;/span&gt;&lt;/code&gt; does
not recreate &lt;code&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/url/issues/757"&gt;#757&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;code&gt;&lt;span class="identifier"&gt;url_view&lt;/span&gt;&lt;/code&gt;/&lt;code&gt;&lt;span class="identifier"&gt;string_view&lt;/span&gt;&lt;/code&gt; constructor requires
non-&lt;code&gt;&lt;span class="identifier"&gt;url_view_base&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/url/issues/756"&gt;#756&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&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;literal&lt;/span&gt;&lt;/code&gt; can be &lt;code&gt;&lt;span class="identifier"&gt;IPv6addrz&lt;/span&gt;&lt;/code&gt;.
(&lt;a href="https://github.com/boostorg/url/issues/711"&gt;#711&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;
Improved generated x86 code for AVX targets. Removed the use of
&lt;code&gt;&lt;span class="identifier"&gt;lddqu&lt;/span&gt;&lt;/code&gt; instruction
on SSE3 targets, which penalize performance on Intel NetBurst CPUs
but is more optimal on Skylake and later CPUs. (&lt;a href="https://github.com/boostorg/uuid/pull/138"&gt;PR#138&lt;/a&gt;)
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div&gt;
&lt;span class="library"&gt;&lt;a href="https://www.boost.org/libs/variant2/"&gt;Variant2&lt;/a&gt;:&lt;/span&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div&gt;
Added &lt;code&gt;&lt;span class="identifier"&gt;uses_double_storage&lt;/span&gt;&lt;span class="special"&gt;()&lt;/span&gt;&lt;/code&gt;.
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div id="version_1_83_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_4_10_1"&gt;B2
version 4.10.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_83_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_83_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>