mirror of
https://github.com/boostorg/website.git
synced 2026-01-19 04:42:17 +00:00
6615 lines
336 KiB
XML
6615 lines
336 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<rss version="2.0" xmlns:boostbook="urn:boost-org:boostbook" xmlns:atom="http://www.w3.org/2005/Atom">
|
||
<channel>
|
||
<generator>Boost Website Site Tools</generator>
|
||
<title>Release notes for work in progress boost</title>
|
||
<link>https://www.boost.org/</link>
|
||
<atom:link href="https://www.boost.org/generated/dev.rss" rel="self" type="application/rss+xml" />
|
||
<description></description>
|
||
<language>en-us</language>
|
||
<copyright>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)</copyright>
|
||
<item><title>Version 1.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>
|
||
|
||
|
||
<div id="version_1_87_x.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/parser/">Parser</a>:</span> Framework for building
|
||
parsers, from Zach Laine.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_87_x.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
API Changes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">error_code</span></code>
|
||
overload for <code><span class="identifier">basic_fields</span><span class="special">::</span><span class="identifier">insert</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added overload for <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">get_status</span></code>
|
||
to query permessage-deflate status.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed use-after-move in calls to <code><span class="identifier">net</span><span class="special">::</span><span class="identifier">dispatch</span></code>
|
||
within <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">basic_stream</span></code>,
|
||
which caused <code><span class="identifier">bad_executor</span></code>
|
||
exceptions on timeouts.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed mutating operations in initiating functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed cancellation handling in <code><span class="identifier">teardown_tcp_op</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Set <code><span class="identifier">state_</span></code>
|
||
in <code><span class="identifier">basic_parser</span></code>
|
||
before calling <code><span class="identifier">on_finish_impl</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed static specifier from <code><span class="identifier">clamp</span></code>
|
||
functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Addressed <code><span class="special">-</span><span class="identifier">Wattributes</span></code>
|
||
warnings in tests.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Addressed unreachable code warning in tests.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added forward declaration headers for types in <code><span class="identifier">beast</span><span class="special">::</span><span class="identifier">http</span></code> namespace
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">parser</span></code>
|
||
to use <code><span class="identifier">basic_fields</span><span class="special">::</span><span class="identifier">insert</span><span class="special">()</span></code> with <code><span class="identifier">error_code</span></code>
|
||
overload
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Applied <code><span class="identifier">header_limit_</span></code>
|
||
in <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">basic_parser</span></code> to trailer headers
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">basic_parser</span></code>
|
||
to return <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">error</span><span class="special">::</span><span class="identifier">header_limit</span></code>
|
||
earlier
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for modular boost build structure
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Jackarain, Saleh Hatefinya, René Ferdinand Rivera Morell
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/charconv">Charconv</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed support for PPC64LE architecture using <code><span class="identifier">__ibm128</span></code>
|
||
as long double format
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed intrinsic usage with Windows ARM64 platform
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed formatting of fixed with specified precision using <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">float128_t</span></code> or <code><span class="identifier">__float128</span></code>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/compat/">Compat</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">to_array</span><span class="special">.</span><span class="identifier">hpp</span></code> (contributed by Ruben Perez
|
||
Hidalgo.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/container/">Container</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code>stored_size</code>
|
||
option to <code><span class="identifier">static_vector</span></code>
|
||
and <code><span class="identifier">small_vector</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs/issues:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/261">GitHub
|
||
#261: <em>"End iterators are not dereferencable"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/288">GitHub
|
||
#288: <em>"Compile error when using flat_map::extract_sequence
|
||
with small_vector"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
As was announced in 1.84.0, Windows versions prior to 10 are no longer
|
||
supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, <code><span class="identifier">canonical</span></code>
|
||
is now based on the <code><span class="identifier">GetFinalPathNameByHandleW</span></code>
|
||
WinAPI function. As a side effect, drive letters are converted to
|
||
upper case, which makes the resulting paths more interoperable. (<a href="https://github.com/boostorg/filesystem/issues/325">#325</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">canonical</span></code>
|
||
no longer produces a trailing directory separator in the resulting
|
||
path, if the input path has one.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
If a <code><span class="identifier">path</span></code> constructor
|
||
or member function is called with an argument of a user-defined type
|
||
that is convertible to <code><span class="identifier">path</span></code>
|
||
and one or more <code><span class="identifier">Source</span></code>
|
||
types, the conversion to <code><span class="identifier">path</span></code>
|
||
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. (<a href="https://github.com/boostorg/filesystem/issues/326">#326</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for <code><span class="identifier">dirfd</span></code>
|
||
being a macro on FreeBSD 9 and older. (<a href="https://github.com/boostorg/filesystem/issues/328">#328</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/flyweight/doc/tutorial/configuration.html#concurrent_factory"><code><span class="identifier">concurrent_factory</span></code></a>, a factory
|
||
based on a concurrent container from <a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/unordered/">Boost.Unordered</a>
|
||
that provides excellent performance in multithreaded scenarios.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Marked as <code><span class="keyword">noexcept</span></code> those
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweight</span></code> operations previously
|
||
documented as not throwing (issue <a href="https://github.com/boostorg/flyweight/issues/15">#15</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/iterator/">Iterator</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">function_output_iterator</span></code>
|
||
is now compliant with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">output_iterator</span></code>
|
||
concept. (<a href="https://github.com/boostorg/iterator/issues/85">#85</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/interprocess/">Interprocess</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Decreased number of Boost dependencies from 11 (in total) to 7.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">interprocess</span><span class="special">/</span><span class="identifier">containers</span><span class="comment">/*.hpp&gt;</span></code> headers. They were the
|
||
original source of <strong>Boost.Container</strong>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Some workarounds for Cygwin were added. Regression tests now work
|
||
on Cygwin64.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>ABI breaking</strong>: <code><span class="identifier">segment_manager</span></code>
|
||
nows uses a new implementation that supports overaligned types and
|
||
fixes some existing bugs. You can obtain the pre-Boost 1.87 ABI #defining
|
||
<code><span class="identifier">BOOST_INTERPROCESS_SEGMENT_MANAGER_ABI</span></code>
|
||
to <code><span class="number">1</span></code> before including
|
||
Boost.Interprocess headers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/152">GitHub
|
||
#152 (<em>"Handle EINTR in shared_memory_object"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/173">GitHub
|
||
#173 (<em>"Managed shared memory segment value not
|
||
aligned"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/192">GitHub
|
||
#192 (<em>"managed_windows_shared_memory crash on
|
||
destruction"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/199">GitHub
|
||
#199 (<em>"missing/misused m_is_wide in char_wchar_holder
|
||
assignment operators"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/210">GitHub
|
||
#210 (<em>"Bug in boost::interprocess::ipcdetail::sync_handles::obtain_mutex"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/215">GitHub
|
||
#215 (<em>"Alignment problem with boost/interprocess/segment_manager
|
||
on SPARC 32Bit"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/217">GitHub
|
||
#217 (<em>"managed_map_file find_or_construct does
|
||
not return Cache aligned memory"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/230">GitHub
|
||
#230 (<em>"<code><span class="identifier">interprocess</span><span class="special">::</span><span class="identifier">ipcdetail</span><span class="special">::</span><span class="identifier">intermodule_singleton</span></code>
|
||
not working on MinGW"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/236">GitHub
|
||
#236 (<em>"<code> <span class="identifier">Floating</span>
|
||
<span class="identifier">point</span> <span class="identifier">inaccuracies</span>
|
||
<span class="identifier">in</span> </code>get_current_process_creation_time<code>
|
||
<span class="identifier">lead</span> <span class="identifier">to</span>
|
||
</code>intermodule_singleton` failures"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Direct serialization.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add GDB pretty printers for Boost.JSON types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Conversion into structs ignores unknown keys.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Exception wrapping behaviour for <code><span class="identifier">value_to</span></code>
|
||
is simplified.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated initilaizer list behavior was removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated type aliases were removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use correct 64bit full multiplication for MinGW on ARM64.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix parse_into handling of tuple of the wrong size.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Check for input size larger than allowed size of sequence.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">value_ref</span></code> segfaulting
|
||
on GCC 14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.Integer, leading to better compile times.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Replaced Boost.Thread synchronization primitives with equivalents
|
||
from the C++ standard library. This may improve multithreaded performance,
|
||
but also has user-facing consequences:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Thread thread interruption is no longer supported. Boost.Log
|
||
no longer has special treatment for the <code><span class="identifier">thread_interrupted</span></code>
|
||
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 <code><span class="identifier">thread_interrupted</span></code>
|
||
pending exception.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For timed waiting operations, timeouts are now using std::chrono
|
||
time units. This means that the <code><span class="identifier">ordering_window</span></code>
|
||
named parameter that is supported by the <code><span class="identifier">bounded_ordering_queue</span></code>
|
||
and <code><span class="identifier">unbounded_ordering_queue</span></code>
|
||
classes now expects an <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span></code>
|
||
value instead of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">posix_time</span><span class="special">::</span><span class="identifier">time_duration</span></code>
|
||
from Boost.DateTime.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In case of errors indicated by thread synchronization primitives,
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">system_error</span></code> exception is
|
||
thrown instead of Boost.Thread exception types.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for C++ standard library lock types to <code><span class="identifier">strictest_lock</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Many special functions, and distribuitions now support CUDA (NVCC
|
||
and NVRTC) and SYCL
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added mapairy, holtsmark, and saspoint5 distibutions, see <a href="https://github.com/boostorg/math/pull/1163">1163</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added landau distibution, see <a href="https://github.com/boostorg/math/pull/1159">1159</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed unexpected exception in beta quantile, see <a href="https://github.com/boostorg/math/issues/1169">1169</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/move/index.html">Move</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/move/issues/56">Git
|
||
Issue #56: <em>"Forward declarations of std types
|
||
cause compilation errors on some platforms"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_lambda</span></code> (contributed
|
||
by Joaquin M Lopez Munoz)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Make <code><span class="identifier">float128</span></code> trivially
|
||
copyable
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make <code><span class="identifier">__float128</span></code> a
|
||
floating point type even in non-GNU modes
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking changes to experimental APIs</strong>:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The thread-safety feature in <code><span class="identifier">connection_pool</span></code>
|
||
has been redesigned to overcome some design flaws found by
|
||
user experience. The boolean option <code><span class="identifier">thread_safe</span></code>
|
||
has been added to <code><span class="identifier">pool_params</span></code>
|
||
(set to <code><span class="keyword">false</span></code>
|
||
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 <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>
|
||
is <code><span class="keyword">false</span></code>, the
|
||
usual Asio executor semantics apply, with no overhead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">pool_executor_params</span></code>
|
||
has been removed, replaced by <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">connection_executor</span></code>
|
||
and <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">thread_safe</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The built-in timeout functionality in <code><span class="identifier">connection_pool</span><span class="special">::</span><span class="identifier">async_get_connection</span></code>
|
||
has been completely removed. This function now supports per-operation
|
||
cancellation, so the same functionality can be achieved by
|
||
using <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Destroying a <code><span class="identifier">connection_pool</span></code>
|
||
now cancels outstanding async operations, as other Asio I/O
|
||
objects do. This prevents resource leaks: an outstanding <code><span class="identifier">async_run</span></code> operation extends
|
||
the pool's lifetime until the operation completes, which could
|
||
cause the pool object to never get destroyed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
When an <code><span class="identifier">async_get_connection</span></code>
|
||
operation is cancelled before a connection is available, the
|
||
operation now consistently fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_not_running</span></code>,
|
||
<code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">no_connection_available</span></code>
|
||
or <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">pool_cancelled</span></code>,
|
||
depending on the pool state (previously, it would fail with
|
||
either <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
|
||
or the last error code encountered by the internal <code><span class="identifier">async_connect</span></code> operations
|
||
performed by the pool). This information is now included in
|
||
the output diagnostics object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">timeout</span></code>
|
||
and <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">cancelled</span></code>
|
||
have been removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Calling <code><span class="identifier">async_get_connection</span></code>
|
||
on a pool that is not running no longer fails immediately,
|
||
but waits for <code><span class="identifier">async_run</span></code>
|
||
to be called.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">sequence</span></code> now
|
||
returns an owning type. This makes it safe use with <code><span class="identifier">with_params</span></code> in deferred async
|
||
operations. <code><span class="identifier">format_sequence_view</span></code>
|
||
has been renamed to <code><span class="identifier">format_sequence</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">sequence</span></code> has
|
||
been moved to a separate header, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">sequence</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">any_connection</span></code>, client-side
|
||
SQL formatting (including <code><span class="identifier">format_sql</span></code>
|
||
and <code><span class="identifier">with_params</span></code>)
|
||
and <code><span class="identifier">connection_pool</span></code>
|
||
have been promoted to stable APIs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">any_connection</span></code> is
|
||
now recommended for new code, instead of <code><span class="identifier">connection</span></code>
|
||
and its aliases <code><span class="identifier">tcp_connection</span></code>,
|
||
<code><span class="identifier">tcp_ssl_connection</span></code>
|
||
and <code><span class="identifier">unix_connection</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">with_params</span></code>,
|
||
a new <code><span class="identifier">ExecutionRequest</span></code>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">with_diagnostics</span></code>,
|
||
an adapter completion token that transforms exceptions thrown by
|
||
async functions to include <code><span class="identifier">diagnostics</span></code>
|
||
objects, matching how sync throwing functions work.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">with_diagnostics</span><span class="special">(</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">deferred</span><span class="special">)</span></code> is now the default completion token
|
||
for all operations in <code><span class="identifier">any_connection</span></code>
|
||
and <code><span class="identifier">connection_pool</span></code>.
|
||
This causes expressions like <code><span class="identifier">co_await</span>
|
||
<span class="identifier">conn</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>
|
||
to behave identically to <code><span class="identifier">conn</span><span class="special">.</span><span class="identifier">connect</span><span class="special">(</span><span class="identifier">params</span><span class="special">)</span></code>. Note that <code><span class="identifier">connection</span></code>
|
||
and its type aliases haven't been updated to match this behavior.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Async functions in <code><span class="identifier">connection_pool</span></code>
|
||
now support per-operation cancellation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All async operations now support <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_after</span></code>,
|
||
<code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">cancel_at</span></code> and similar completion
|
||
tokens that require a bound executor to initiations passed to <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">async_initiate</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">connection</span></code> and <code><span class="identifier">any_connection</span></code> now dispatch immediate
|
||
completions through the token's immediate executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an issue that caused a crash when trying to use an <code><span class="identifier">any_connection</span></code> that hasn't been
|
||
previously connected.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed an incorrect <code><span class="keyword">noexcept</span></code>
|
||
specifier from a potentially throwing constructor in <code><span class="identifier">field</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an issue that could cause the write buffer size to exceed the
|
||
configured buffer size limit.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Heavily updated the documentation and examples to be more relevant
|
||
and reflect the new recommended best practices.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">for_each_field_with_name</span></code> function
|
||
was added. Many thanks to <a href="https://github.com/Baduit">Lena</a>
|
||
for the <a href="https://github.com/boostorg/pfr/pull/171">PR#171</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Significant</strong> compilation time improvement
|
||
for structures with big size and small fields count. Many thanks
|
||
to <a href="https://github.com/runer112">Zachary Wassall</a>
|
||
for the <a href="https://github.com/boostorg/pfr/pull/120">PR#120</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">pragma</span></code> directives.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Initial support for C++20 Modules</strong>.
|
||
See the docs for more info.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix unused variable warnings in core_name14_disabled.hpp. Thanks
|
||
to <a href="https://github.com/anarthal">Anarthal (Rubén Pérez)</a>
|
||
for the <a href="https://github.com/boostorg/pfr/pull/183">PR#183</a> and <a href="https://github.com/boostorg/pfr/pull/187">PR#187</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Default limit for fields count in aggregate in C++17 was raised from
|
||
100 to 200.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed warning about GCC not being aware of the -Wundefined-var-template.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Multiple minor improvement for compilation time.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/smart_ptr/">SmartPtr</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The functionality enabled by the macros <code><span class="identifier">BOOST_SP_ENABLE_DEBUG_HOOKS</span></code>,
|
||
<code><span class="identifier">BOOST_SP_USE_STD_ALLOCATOR</span></code>,
|
||
<code><span class="identifier">BOOST_SP_USE_QUICK_ALLOCATOR</span></code>,
|
||
<code><span class="identifier">BOOST_AC_USE_SPINLOCK</span></code>,
|
||
<code><span class="identifier">BOOST_AC_USE_PTHREADS</span></code>,
|
||
<code><span class="identifier">BOOST_SP_USE_SPINLOCK</span></code>,
|
||
and <code><span class="identifier">BOOST_SP_USE_PTHREADS</span></code>
|
||
has been deprecated and support for it will be removed in a future
|
||
release.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">Boost</span><span class="special">::</span><span class="identifier">stacktrace_from_exception</span></code> CMake
|
||
target was added. Many thanks to <a href="https://github.com/void-mian">int
|
||
main</a> for the <a href="https://github.com/boostorg/stacktrace/pull/189">PR#189</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Don't export <code><span class="identifier">boost_stacktrace_impl_return_nullptr</span></code>
|
||
for static build on MSVC. Many thanks to <a href="https://github.com/huangqinjin">huangqinjin</a>
|
||
for the <a href="https://github.com/boostorg/stacktrace/pull/186">PR#186</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed autolinking with <code><span class="identifier">ole32</span><span class="special">.</span><span class="identifier">lib</span></code>
|
||
and <code><span class="identifier">Dbgeng</span><span class="special">.</span><span class="identifier">lib</span></code> while using clang under Windows
|
||
OS.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed missing namespace in docs. Thanks to <a href="https://github.com/meastp">Mats
|
||
Taraldsvik</a> for the <a href="https://github.com/boostorg/stacktrace/pull/181">PR#181</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed missing include for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception</span></code>.
|
||
Thanks to <a href="https://github.com/jschueller">Julien Schueller</a>
|
||
for the <a href="https://github.com/boostorg/stacktrace/pull/178">PR#178</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed type conversions errors reported by GCC. Thanks to <a href="https://github.com/jplcz">agent_J</a>
|
||
for the <a href="https://github.com/boostorg/stacktrace/pull/175">PR#175</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/stl_interfaces/">STLInterfaces</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct misdocumented requirements for sequence container <code><span class="identifier">swap</span></code>; the expected return type
|
||
is <code><span class="keyword">void</span></code>, not <code><span class="keyword">bool</span></code>. (<a href="https://github.com/boostorg/stl_interfaces/issues/71">#71</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="special">[[</span><span class="identifier">no_unique_address</span><span class="special">]]</span></code> to the data members of the adaptors
|
||
in <code><span class="identifier">view_adaptor</span><span class="special">.</span><span class="identifier">hpp</span></code>. (<a href="https://github.com/boostorg/stl_interfaces/issues/65">#65</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enable deducing <code><span class="keyword">this</span></code>
|
||
for recent versions of Clang and MSVC that support it, but do not
|
||
advertise that support via <code><span class="identifier">__cpp_explicit_this_parameter</span></code>.
|
||
(<a href="https://github.com/boostorg/stl_interfaces/pull/68">PR#68</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed support for clang tidy with dummy conditions <a href="https://github.com/boostorg/test/pull/348">PR#348</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed dynamic linking with clang <a href="https://github.com/boostorg/test/pull/431">PR#431</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added concurrent, node-based containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_node_map</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_node_set</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">insert_and_visit</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">f1</span><span class="special">,</span> <span class="identifier">f2</span><span class="special">)</span></code> and similar operations to concurrent
|
||
containers, which allow for visitation of an element right after
|
||
insertion (by contrast, <code><span class="identifier">insert_or_visit</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">f</span><span class="special">)</span></code> only visits the element if insertion
|
||
did <em>not</em> take place).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Made visitation exclusive-locked within certain <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_set</span></code>
|
||
operations to allow for safe mutable modification of elements (<a href="https://github.com/boostorg/unordered/pull/265">PR#265</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> assignment issues
|
||
for open-addressing containers (<a href="https://github.com/boostorg/unordered/pull/277">PR#277</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allowed non-copyable callables to be passed to the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> overloads of
|
||
<code><span class="identifier">insert_</span><span class="special">{</span><span class="keyword">and</span><span class="special">|</span><span class="keyword">or</span><span class="special">}</span><span class="identifier">_</span><span class="special">[</span><span class="identifier">c</span><span class="special">]</span><span class="identifier">visit</span></code> for concurrent containers,
|
||
by internally passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">reference_wrapper</span></code>
|
||
of the callable to the iterator-pair overloads.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/url/">URL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
feat: set_params supports encoding_opts. (<a href="https://github.com/boostorg/url/issues/856">#856</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
refactor: no deprecated variant2 alias from API. (<a href="https://github.com/boostorg/url/issues/857">#857</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
refactor: query_rule consistent interpretation. (<a href="https://github.com/boostorg/url/issues/864">#864</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/uuid/">UUID</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Restored the ability to construct a <code><span class="keyword">constexpr</span>
|
||
<span class="identifier">uuid</span></code> that was inadvertently
|
||
lost in 1.86.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_87_0_beta1/libs/wave/">Wave</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/220">GitHub
|
||
#220: <em>"Seg fault under C++20 and empty stringify
|
||
parameter"</em></a>. Thanks <a href="https://github.com/jwnhy/">Lu
|
||
HongYi</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/222">GitHub
|
||
#222: <em>"No line directive if first line of included
|
||
file is blank"</em></a>. Thanks <a href="https://github.com/njnobles">Nick
|
||
Nobles</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Build improvements including modular build support, thanks <a href="https://github.com/grafikrobot">René Rivera</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_87_x.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_87_x.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
|
||
</p>
|
||
</div>
|
||
</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>
|
||
|
||
|
||
<div id="version_1_86_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
No new libraries.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_86_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">default_completion_token</span></code>
|
||
trait's primary template to select <code><span class="identifier">deferred</span></code>
|
||
as the default completion token. As a result, most asynchronous operations'
|
||
initiating functions will return a deferred asynchronous operation
|
||
by default.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">is_completion_condition</span></code>
|
||
trait and added missing default completion tokens to overloads of
|
||
<code><span class="identifier">async_read</span></code>, <code><span class="identifier">async_read_at</span></code>, <code><span class="identifier">async_write</span></code>,
|
||
and <code><span class="identifier">async_write_at</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">is_connect_condition</span></code>
|
||
trait and used it disambiguate overloads of <code><span class="identifier">async_connect</span></code>
|
||
when the completion token is defaulted.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Extended the completion token adapters <code><span class="identifier">as_tuple</span></code>,
|
||
<code><span class="identifier">bind_allocator</span></code>,
|
||
<code><span class="identifier">bind_cancellation_slot</span></code>,
|
||
<code><span class="identifier">bind_executor</span></code>, <code><span class="identifier">bind_immediate_executor</span></code>, and <code><span class="identifier">redirect_error</span></code> to allow them to
|
||
be used as partial completion token adapters.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">cancel_after</span></code>
|
||
and <code><span class="identifier">cancel_at</span></code> completion
|
||
token adapters.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed all completion token adapters to ensure they correctly propagate
|
||
the asynchronous operation's I/O executor during adaptation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved <code><span class="identifier">co_composed</span></code>
|
||
out of the <code><span class="identifier">experimental</span></code>
|
||
namespace.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">composed</span></code>, which
|
||
creates an initiation function object from a stateful implementation.
|
||
It is similar to <code><span class="identifier">co_composed</span></code>,
|
||
but for regular function objects rather than C++20 coroutines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">detached</span></code>
|
||
completion token to work with asynchronous operations that have multiple
|
||
completion signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed <code><span class="identifier">async_initiate</span></code>
|
||
to allow an empty variadic list of completion signatures, which would
|
||
indicate that an asynchronous operation never completes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added overloads of <code><span class="identifier">async_initiate</span></code>
|
||
that automatically deduce the type of the completion token.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">async_immediate</span></code>
|
||
which implements a trivial asynchronous operation that completes
|
||
immediately, using an associated immediate executor if available.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled SFINAE-based partial specialisation of the <code><span class="identifier">associator</span></code> trait.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A number of bug fixes, compiler/platform compatibility improvements,
|
||
and minor optimisations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various updates to documentation and examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_86_0/doc/html/boost_asio/history.html">Revision
|
||
History</a> for further details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Use <a href="https://man.openbsd.org/OpenBSD-6.2/futex.2"><code><span class="identifier">futex</span><span class="special">(</span><span class="number">2</span><span class="special">)</span></code></a>
|
||
system call on OpenBSD since recent OpenBSD versions have removed
|
||
support for <code><span class="identifier">syscall</span><span class="special">(</span><span class="number">2</span><span class="special">)</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
API Changes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added HTTP status code 418 <code><span class="identifier">I</span><span class="error">'</span><span class="identifier">m</span>
|
||
<span class="identifier">a</span> <span class="identifier">teapot</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Narrowing conversion in <code><span class="identifier">read_size_hint_db</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Overloads that are ambiguous when using default completion
|
||
tokens.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Misplaced static_assert in <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">basic_fields</span></code>
|
||
move-assignment operator.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Underflow of <code><span class="identifier">bytes_transferred</span></code>
|
||
in WebSocket partial write operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">read_size_hint</span><span class="special">()</span></code>
|
||
does not exceed <code><span class="identifier">read_message_max</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various warnings in tests.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Error handling in SSL shutdown operations in examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Annotate fallthrough case in zlib.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Handling of expired timers in <code><span class="identifier">basic_stream</span><span class="special">::</span><span class="identifier">ops</span><span class="special">::</span><span class="identifier">transfer_op</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ambiguity in <code><span class="identifier">test</span><span class="special">::</span><span class="identifier">basic_stream</span></code>
|
||
constructor overloads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Partial parsing of the final chunk in <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">parser</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Graceful shutdown in <code><span class="identifier">server_flex_awaitable</span></code>
|
||
example.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Simplified awaitable examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added fuzzing targets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove superfluous uses of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code>
|
||
in some examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">ssl_stream</span></code>
|
||
does not use <code><span class="identifier">flat_stream</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Documentation
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">ssl_stream</span></code>
|
||
and <code><span class="identifier">flat_stream</span></code>
|
||
marked as deprecated.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">net</span><span class="special">::</span><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span></code> is canonical in snippets
|
||
and examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">SSL</span><span class="special">/</span><span class="identifier">TLS</span> <span class="identifier">Shutdown</span>
|
||
<span class="identifier">Procedure</span></code> section.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
tyler92, Ruslan Zakirov, Orgad Shaneh, Alexander Kernozhitsky
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/charconv">Charconv</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed support for PPC64LE architecture.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed support for platforms like Alpine linux that provide the <code><span class="special">&lt;</span><span class="identifier">quadmath</span><span class="special">.</span><span class="identifier">h</span><span class="special">&gt;</span></code> header but not the compiled library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed first character pattern matching in <code><span class="identifier">from_chars</span></code>
|
||
for integer types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflow detection for integers with base greater than 10.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added native support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">float16_t</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bfloat16_t</span></code> instead of using interchange
|
||
formats.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/cobalt">Cobalt</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for asio::cancel_after
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Made <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">deferred</span></code> co_await-able, because
|
||
it's asio's default token
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">noop</span></code> utility
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for stackful coroutines/fibers
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed movability of channel &amp; coroutine types
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">bind_front</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
<code><span class="identifier">bind_back</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">invoke</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
<code><span class="identifier">mem_fn</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">integer_sequence</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">type_traits</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">function_ref</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs/issues:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/285">GitHub
|
||
#285: <em>"devector&lt;&gt;::push_front asserts
|
||
after clear()"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/280">GitHub
|
||
#280: <em>"Several containers don't support non-movable
|
||
types when move assigning"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/279">GitHub
|
||
#279: <em>"small_vector cannot go back to use stack
|
||
space"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/277">GitHub
|
||
#277: <em>"Remove dep on boost::static_assert"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/275">GitHub
|
||
#275: <em>"Compilation fails if custom key comparison
|
||
is used"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/273">GitHub
|
||
#273: <em>"flat_map/vector crashes on appends (memory
|
||
corruption)"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/269">GitHub
|
||
#269: <em>"flat_multimap::emplace not sorting elements
|
||
under GCC"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/266">GitHub
|
||
#266: <em>"small_vector&lt;T&gt; is misaligned on
|
||
the stack in 32 bits"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/259">GitHub
|
||
#259: <em>"Global variables"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/245">GitHub
|
||
#245: <em>"flat_tree::insert ordered range doesn't
|
||
assert sorting"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/241">GitHub
|
||
#241: <em>"flat_map should support same interface
|
||
as std::map"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">pointer_in_range</span><span class="special">.</span><span class="identifier">hpp</span></code> header with a <code><span class="identifier">pointer_in_range</span></code> function template
|
||
to check if a pointer is within a given range (Glen Fernandes).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">type_name</span></code> for
|
||
abstract classes. (<a href="https://github.com/boostorg/core/issues/172">#172</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">type_name</span><span class="special">.</span><span class="identifier">hpp</span></code> compilation error with MSVC
|
||
with disabled native <code><span class="keyword">wchar_t</span></code>
|
||
type. (<a href="https://github.com/boostorg/core/issues/173">#173</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for an MSVC <a href="https://developercommunity.visualstudio.com/t/Compiler-bug:-Incorrect-C2247-and-C2248/10690025">bug</a>
|
||
causing <code><span class="identifier">empty_value</span></code>
|
||
compilation errors when it is used with a nested class. (<a href="https://github.com/boostorg/core/pull/175">PR#175</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/crc/">CRC</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed dependencies on Array, Config, Integer, and TypeTraits. The
|
||
library is now standalone.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">is_empty</span></code> operation
|
||
is now better protected against concurrent filesystem modifications.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On POSIX systems, <code><span class="identifier">is_empty</span></code>
|
||
now indicates error if invoked on a file other than a regular file
|
||
or a directory.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, fixed <code><span class="identifier">file_size</span></code>
|
||
and <code><span class="identifier">is_empty</span></code> operating
|
||
on symlinks rather than the files the symlinks refer to. (<a href="https://github.com/boostorg/filesystem/issues/313">#313</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">refresh</span></code> no longer throws an exception
|
||
if the file referenced by the entry doesn't exist. This makes <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">status</span></code> and <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">symlink_status</span></code>,
|
||
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 <code><span class="identifier">error_code</span></code>
|
||
returned by the corresponding <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">refresh</span></code>
|
||
overload, or can be seen by testing if the file type returned by
|
||
<code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">status</span></code> or <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">symlink_status</span></code>
|
||
calls is <code><span class="identifier">file_type</span><span class="special">::</span><span class="identifier">file_not_found</span></code>.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/314">#314</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">weakly_canonical</span></code>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, fixed <code><span class="identifier">weakly_canonical</span></code>
|
||
producing incorrect result path when the input path started with
|
||
"..". (<a href="https://github.com/boostorg/filesystem/issues/311">#311</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/format/">Format</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/function/">Function</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed dependency on Boost.TypeTraits.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Brought back the <code><span class="identifier">argN_type</span></code>
|
||
typedefs that were accidentally lost in 1.85.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">tell</span><span class="special">()</span></code> and <code><span class="identifier">error</span><span class="special">()</span></code> functions to <code><span class="identifier">istream_device</span></code> and <code><span class="identifier">ostream_device</span></code> classes (<a href="https://github.com/boostorg/gil/pull/747">PR#747</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Don't ignore custom color converter in <code><span class="identifier">color_converted_view</span></code>
|
||
function (<a href="https://github.com/boostorg/gil/pull/726">PR#726</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added workaround for conflict with <code><span class="identifier">min</span><span class="special">()</span></code> and <code><span class="identifier">max</span><span class="special">()</span></code> macros on WinAPI (<a href="https://github.com/boostorg/gil/pull/745">PR#745</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The use of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span></code>
|
||
in GIL is now configurable in CMake via option <code><span class="identifier">BOOST_GIL_USE_BOOST_FILESYSTEM</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/743">PR#743</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed convolution in <code><span class="identifier">convolve_2d</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/723">PR#723</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Normalize Gaussian 2D kernel to avoid darkening (<a href="https://github.com/boostorg/gil/pull/725">PR#725</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Wrong buffer size in path string conversion functions for
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code> is fixed, avoiding
|
||
buffer overflows when using I/O-related functions with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">wstring</span></code> paths (<a href="https://github.com/boostorg/gil/pull/746">PR#746</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Christoph Gringmuth, Christopher Kormanyos, nicolacandussi,
|
||
Dirk Stolle, Olzhas Zhumabek
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/graph/">Graph</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<em>Major</em> 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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove direct dependency on Boost.Regex.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix several compilation errors caused by not explicitly including
|
||
common headers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">isomorphism</span></code>: Fix
|
||
docs, ignore <code><span class="identifier">vertex_max_invariant</span></code>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boykov_kolmogorov_max_flow</span></code>:
|
||
Fix named parameter overload.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">adj_list_edge_iterator</span></code>:
|
||
Fix maybe-uninitialized warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">hawick_circuits</span></code>:
|
||
Add a parameter to optionally limit the depth of the search, causing
|
||
a potentially suboptimal answer to be returned early.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">disjoint_sets</span></code>: Improve
|
||
performance of <code><span class="identifier">link_sets</span></code>
|
||
by removing redundant lookup of set representatives.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">maximum_adjacency_search</span></code>:
|
||
Refactor and more tests.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">property</span></code>: Use <code><span class="identifier">BOOST_ATTRIBUTE_NO_UNIQUE_ADDRESS</span></code>
|
||
to remove wasted space.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">labeled_graph</span></code>: Fix
|
||
<code><span class="identifier">remove_labeled_vertex</span></code>
|
||
so that it actually removes the label too.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">r_c_shortest_paths</span></code>:
|
||
Fix bug that the single-solution variant did not always return the
|
||
shortest path.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">read_graphviz</span></code>: Fix
|
||
stack overflow (oss-fuzz issue 66719) and non-keyword subgraph parsing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Many miscellaneous improvements: broken links, typos, etc.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/interprocess/">Interprocess</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/191">GitHub
|
||
#191 (<em>"vectorstream: support file sizes larger
|
||
than INT_MAX "</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/198">GitHub
|
||
#198 (<em>"Minor fixes for documentation of offset_ptr"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/202">GitHub
|
||
#202 (<em>"Allow to map message_queue in anonymous
|
||
memory"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/207">GitHub
|
||
#207 (<em>"cmake: link system libraries"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/214">GitHub
|
||
#214 (<em>"Doc: Fix github links"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bug <a href="https://github.com/boostorg/intrusive/issues/86">GitHub
|
||
#86: <em>Invalid UTF-8 character in comment</em></a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for GCC versions older than version 5.0 is deprecated and
|
||
<strong>will stop in Boost 1.88.0</strong>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">source_location</span></code> parameter
|
||
was added to throwing accessor functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parse option to tolerate invalid UTF-16 surrogate pairs, and produce
|
||
<a href="https://simonsapin.github.io/wtf-8/">WTF-8</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added accessor functions that return <code><span class="identifier">system</span><span class="special">::</span><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Handle missing error case in direct parsing.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed conversion of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_string_view</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_string_view</span></code> containing one
|
||
or more <code><span class="special">\</span><span class="number">0</span></code>
|
||
characters. Issue was introduced in 1.85.0.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/leaf/">leaf</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
More optimal verbose_diagnostic_info implementation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added [[nodiscard]] to class result&lt;&gt;.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add support for custom allocators in <code><span class="identifier">conv</span><span class="special">::</span><span class="identifier">utf_to_utf</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Don't build examples by default
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a workaround for <code><span class="identifier">windres</span><span class="special">.</span><span class="identifier">exe</span></code>
|
||
issue, when it is used in CMake to compile event log resource files
|
||
on MinGW-w64. (<a href="https://github.com/boostorg/log/pull/231">PR#231</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct Bessel function results at infinity, see <a href="https://github.com/boostorg/math/issues/1143">1143</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve Non Central T numerical stability, see <a href="https://github.com/scipy/scipy/issues/20693">scipy20693</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct <code><span class="identifier">float_next</span></code>/<code><span class="identifier">float_prior</span></code> behaviour at infinity.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prevent spurious underflow in non-central beta, see <a href="https://github.com/scipy/scipy/issues/20693">scipy20693</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add improvement to Heuman Lambda precision.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve Skew Normal root finding, see <a href="https://github.com/boostorg/math/issues/1120">1120</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Lots of minor fixes and improved code coverage.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Make sure <code><span class="identifier">eval_convert_to</span><span class="special">()</span></code> does not terminate with super large
|
||
numbers, see <a href="https://github.com/boostorg/multiprecision/pull/618">618</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">sinc</span></code> implementation
|
||
to match behavior of Boost.Math.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix divide-by-zero in cpp_int modulus operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix underflow behavior consistency for integers greater than 128-bits,
|
||
see <a href="https://github.com/boostorg/multiprecision/issues/626">626</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The long-deprecated functions <code><span class="identifier">query</span></code>,
|
||
<code><span class="identifier">start_query</span></code>, <code><span class="identifier">execute_statement</span></code> and <code><span class="identifier">start_statement_execution</span></code> (and
|
||
their async equivalents) have been removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Breaking changes to experimental APIs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">identifier</span></code>
|
||
class (client-side SQL formatting) has been removed. Use the
|
||
new format specifiers feature, instead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The required interface for custom formatters has been changed
|
||
to accomodate the new format specifiers API.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">any_connection</span><span class="special">::</span><span class="identifier">async_connect</span></code>
|
||
now requires that its <code><span class="identifier">connect_params</span></code>
|
||
argument be kept alive until the operation completes. The overload
|
||
taking a <code><span class="keyword">const</span> <span class="identifier">connect_params</span><span class="special">*</span></code>
|
||
has been removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">character_set</span><span class="special">::</span><span class="identifier">name</span></code>
|
||
is now a <code><span class="keyword">const</span> <span class="keyword">char</span><span class="special">*</span></code>
|
||
instead of a <code><span class="identifier">string_view</span></code>,
|
||
as MySQL character set names can't contain NULL characters.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">any_connection</span></code>
|
||
internal buffer is now limited to 64MB. If you need to read
|
||
or write rows bigger than that, increase <code><span class="identifier">any_connection_params</span><span class="special">::</span><span class="identifier">max_buffer_size</span></code>.
|
||
<code><span class="identifier">connection</span></code>
|
||
and their helper typedefs are not limited.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Renamed <code><span class="identifier">any_connection_params</span><span class="special">::</span><span class="identifier">initial_read_buffer_size</span></code>
|
||
to <code><span class="identifier">initial_buffer_size</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Renamed <code><span class="identifier">pool_params</span><span class="special">::</span><span class="identifier">initial_read_buffer_size</span></code>
|
||
to <code><span class="identifier">initial_buffer_size</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New experimental API: <strong>pipelines</strong>.
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Client-side SQL formatting now supports ranges out of the box. Formatting
|
||
can be further customized using the new <code><span class="identifier">sequence</span></code>
|
||
function. Use cases like batch inserts and batch lookups can be significantly
|
||
simplified using this functionality.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Client-side SQL formatting now supports format specifiers which modify
|
||
how values are formatted. <code><span class="special">{:</span><span class="identifier">i</span><span class="special">}</span></code>
|
||
formats a string as a dynamic SQL identifiers, and <code><span class="special">{:</span><span class="identifier">r</span><span class="special">}</span></code> outputs a raw unescaped
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The static interface (<code><span class="identifier">static_results</span></code>
|
||
and <code><span class="identifier">static_execution_state</span></code>)
|
||
now supports Boost.Pfr types using <code><span class="identifier">pfr_by_name</span></code>
|
||
and <code><span class="identifier">pfr_by_position</span></code>.
|
||
Added <code><span class="identifier">underlying_row_t</span></code>
|
||
to support such types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">date</span></code> and <code><span class="identifier">datetime</span></code> can now be constructed
|
||
from and converted to C++20 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">local_time</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">any_connection_params</span><span class="special">::</span><span class="identifier">max_buffer_size</span></code>,
|
||
which allows to set a limit to the connection's internal buffer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">is_fatal_error</span></code>,
|
||
which allows users can now distinguish between fatal (which require
|
||
closing and re-opening the connection) and non-fatal error codes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">formattable_ref</span></code>,
|
||
a type-erased reference type that can refer to any type satisfying
|
||
the <code><span class="identifier">Formattable</span></code> concept.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an ODR violation under MSVC which could cause crashes in release
|
||
builds when using Boost.MySQL with other code also using <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">coroutine</span></code> in different translation
|
||
units.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/numeric/odeint/">Odeint</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added CMake Option <code><span class="identifier">BOOST_NUMERIC_ODEINT_NO_ADAPTORS</span></code>
|
||
to reduce dependencies, see <a href="https://github.com/boostorg/odeint/issues/82">82</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed CMake detection of MPI.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/process/">Process</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Moved the old boost.process to v1 subfolder and inline namespace.
|
||
deprecated process/*.hpp v1 headers
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Turned v2 into a compile library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed usage on alpine linux / musl
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature: stacktrace from arbitrary
|
||
exception for Windows</strong>. <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">stacktrace</span><span class="special">::</span><span class="identifier">from_current_exception</span><span class="special">()</span></code> now works on Windows platform.
|
||
Many thanks to <a href="https://github.com/huangqinjin">huangqinjin</a>
|
||
for the implementation <a href="https://github.com/boostorg/stacktrace/pull/159">PR#159</a>
|
||
Now on POSIX and Windows
|
||
the <code><span class="identifier">from_current_exception</span><span class="special">()</span> </code> function returns the stacktrace
|
||
of the current exception object as if the stacktrace was captured
|
||
at the point of throwing the exception.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed inclusion of rarely used Windows SDK headers which can cause
|
||
conflict with other code using Windows SDK. Thanks to <a href="https://github.com/mabrarov">Marat
|
||
Abrarov</a> for fixing the issue <a href="https://github.com/boostorg/stacktrace/pull/157">PR#157</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Build option <code><span class="identifier">boost</span><span class="special">.</span><span class="identifier">stacktrace</span><span class="special">.</span><span class="identifier">from_exception</span></code>
|
||
now properly works on MacOS. Thanks to <a href="https://github.com/pdimov">Peter
|
||
Dimov</a> for the fix <a href="https://github.com/boostorg/stacktrace/pull/166">PR#166</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a typo in assert expression. Thanks to <a href="https://github.com/Ukilele">Kilian
|
||
Henneberger</a> for the bug report <a href="https://github.com/boostorg/stacktrace/issues/164">#164</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed shadowing warnings. Thanks to <a href="https://github.com/nigels-com">Nigel
|
||
Stewart</a> for the bug report <a href="https://github.com/boostorg/stacktrace/issues/141">#141</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">dladdr</span></code> minimal
|
||
support for AIX. Many thanks to Clément Chigot for the implementation
|
||
<a href="https://github.com/boostorg/stacktrace/pull/114">PR#114</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">Boost</span><span class="special">::</span><span class="identifier">stacktrace</span></code> CMake alias that refers
|
||
to the best supported implementation of Boost.Stacktrace on the platform.
|
||
Thanks to <a href="https://github.com/leha-bot">Alex</a> for
|
||
the feature <a href="https://github.com/boostorg/stacktrace/pull/167">PR#167</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Significant improvement of CMake: multiple fixes, added many new
|
||
tests, improved CI. Many thanks to <a href="https://github.com/pdimov">Peter
|
||
Dimov</a> for all the improvements.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix addr2line work when the process is looked up via <code><span class="identifier">PATH</span></code>. Thanks to <a href="https://github.com/Schreischildkroete">Schreischildkroete</a>
|
||
for the bug report and to <a href="https://github.com/j-jr-richter">Jens
|
||
Richter</a> for fix <a href="https://github.com/boostorg/stacktrace/issues/72">#72</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="special">-</span><span class="identifier">Wundef</span></code>
|
||
in configuration step.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix unreachable return compilation error on MSVC.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added container <code><span class="identifier">pmr</span></code>
|
||
aliases when header <code><span class="special">&lt;</span><span class="identifier">memory_resource</span><span class="special">&gt;</span></code>
|
||
is available. The alias <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered</span><span class="special">::</span><span class="identifier">pmr</span><span class="special">::[</span><span class="identifier">container</span><span class="special">]</span></code> refers to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered</span><span class="special">::[</span><span class="identifier">container</span><span class="special">]</span></code> with a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">polymorphic_allocator</span></code>
|
||
allocator type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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 <code><span class="identifier">BOOST_UNORDERED_ENABLE_STATS</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Avalanching hash functions must now be marked via an <code><span class="identifier">is_avalanching</span></code> typedef with an
|
||
embedded <code><span class="identifier">value</span></code> constant
|
||
set to <code><span class="keyword">true</span></code> (typically,
|
||
defining <code><span class="identifier">is_avalanching</span></code>
|
||
as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">true_type</span></code>). <code><span class="keyword">using</span>
|
||
<span class="identifier">is_avalanching</span> <span class="special">=</span>
|
||
<span class="keyword">void</span></code> is deprecated but allowed
|
||
for backwards compatibility.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/uuid/">UUID</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<em>Major</em> update.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Decreased number of Boost dependencies from 39 (in total) to just
|
||
5.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated to reflect the newer <a href="https://datatracker.ietf.org/doc/rfc9562/">RFC
|
||
9562</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added generators for time-based UUIDs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<em>Many</em> other improvements, see
|
||
the <a href="https://www.boost.org/libs/uuid/doc/html/uuid.html#changes">revision history</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Replaced one use of vsprintf with the more secure vsnprintf
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bug:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/197">#197</a>: Improper signed overflow handling (UB and a missing
|
||
division check)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/winapi/">WinAPI</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>
|
||
CMake option, which allows users to specify the Windows version for
|
||
Boost to target.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_86_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/boostbook/">BoostBook</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
DTD updated: <code><span class="identifier">constructor</span></code>,
|
||
<code><span class="identifier">copy</span><span class="special">-</span><span class="identifier">assignment</span></code> and <code><span class="identifier">destructor</span></code>
|
||
elements are now allowed inside <code><span class="identifier">method</span><span class="special">-</span><span class="identifier">group</span></code>
|
||
elements.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Many fixes and improvements in Doxygen-generated documentation:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed duplicate equal signs in Doxygen-generated enum value
|
||
initializers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disabled alphabetical sorting of function arguments. The sorting
|
||
can be re-enabled by setting the new <code><span class="identifier">boost</span><span class="special">.</span><span class="identifier">sort</span><span class="special">.</span><span class="identifier">params</span></code>
|
||
XSL parameter to 1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for custom class member grouping. See Doxygen
|
||
tags <code><span class="error">@</span><span class="identifier">name</span></code>
|
||
and <code><span class="error">@</span><span class="special">{</span></code>/<code><span class="error">@</span><span class="special">}</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for Doxygen references to classes, methods, enums,
|
||
variables, etc. (see <code><span class="error">@</span><span class="identifier">ref</span></code> tag).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="error">@</span><span class="identifier">remark</span></code> and <code><span class="error">@</span><span class="identifier">important</span></code>
|
||
tags.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="error">@</span><span class="identifier">parblock</span></code> tags, which can
|
||
be used to place multiple paragraphs under a tag that expects
|
||
a single paragraph as an argument (e.g. <code><span class="error">@</span><span class="identifier">returns</span></code>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Template parameter defaults that refer to implementation details
|
||
are now concealed, similar to function parameter defaults.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved presentation of unnamed enums. Instead of showing
|
||
a synthesized name such as <code><span class="error">@</span><span class="number">0</span></code>, the name is either omitted
|
||
or is <code><span class="special">[</span><span class="identifier">unnamed</span><span class="special">]</span></code>, if the name is necessary
|
||
to introduce a link to the enum documentation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the "See Also" (<code><span class="error">@</span><span class="identifier">sa</span></code>) blocks to be displayed
|
||
inline, similar to "Returns".
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed presentation of multiple exception specifications (<code><span class="error">@</span><span class="identifier">throws</span></code>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for free form description of throwing behavior.
|
||
If the exception type after the <code><span class="error">@</span><span class="identifier">throws</span></code> tag is "~"
|
||
then the exception type is omitted from the output, and the
|
||
following description is displayed directly in the "Throws"
|
||
section.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed redundant spaces in return types and template parameters.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_5_2_1">B2
|
||
version 5.2.1</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_86_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_86_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release.
|
||
</p>
|
||
</div>
|
||
</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>
|
||
|
||
|
||
<div id="version_1_85_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
These are patches from library authors which were found too late to be fixed
|
||
in the release.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Container
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
flat_map/multimap containers can crash or return invalid results
|
||
in some compilers due to UB in the library, see <a href="https://github.com/boostorg/container/issues/273">#273</a>.
|
||
<a href="https://www.boost.org/patches/1_85_0/0001-container-fix-flat_map.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/charconv/">Charconv</a>:</span> A high quality implementation
|
||
of <code><span class="special">&lt;</span><span class="identifier">charconv</span><span class="special">&gt;</span></code> in C++11, from Matt Borland.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/scope/">Scope</a>:</span> A collection of scope guard
|
||
utilities and a <code><span class="identifier">unique_resource</span></code>
|
||
wrapper, from Andrey Semashev.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">async_result</span></code>
|
||
primary template's concept checking to correctly handle lvalue-qualified
|
||
completion signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some compile errors that could arise when using the <code><span class="identifier">bind_allocator</span></code>, <code><span class="identifier">bind_executor</span></code>,
|
||
<code><span class="identifier">bind_immediate_executor</span></code>
|
||
and <code><span class="identifier">bind_cancellation_slot</span></code>
|
||
completion token adapters to adapt each other.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>
|
||
operation so that it moves the <code><span class="identifier">completion_order</span></code>
|
||
vector when invoking the completion handler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some warnings about deprecated implicit copy constructors on
|
||
<code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_query</span></code>, <code><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">strand</span></code>, and <code><span class="identifier">coroutine</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated the version specification used to initialise Winsock.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">co_spawn</span></code> to
|
||
correctly propagate exceptions resulting from cancellation to the
|
||
completion handler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added calls to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">launder</span></code>
|
||
to fix undefined behaviour in <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code> internal storage.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing handling of the <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">append</span></code>
|
||
flag in the Windows implementation of file support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated the socket and descriptor implementations to add more cases
|
||
where they will fall back to <code><span class="identifier">fcntl</span></code>
|
||
if a call to <code><span class="identifier">ioctl</span></code>
|
||
fails.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <tt>boost/asio/experimental/parallel_group.hpp</tt>
|
||
header so that it is self-contained.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a compile error that occurred when channels and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code> were both used in the same
|
||
translation unit.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing CancellationSlot type requirements to documentation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the documentation hyperlinks for the deduced return types of
|
||
asynchronous operations' initiating functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Other minor documentation updates.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">pause</span></code>
|
||
instruction on RISC-V. (<a href="https://github.com/boostorg/atomic/pull/65">PR#65</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
API Changes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The status code list has been updated to conform with the IANA
|
||
registry.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Unreachable code warning in <code><span class="identifier">buffers_cat</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Connection error handling in <code><span class="identifier">websocker_server_awaitable</span></code>
|
||
example.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Concurrent calls to <code><span class="identifier">async_write</span></code>
|
||
in advanced server examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
zlib name conflicts with minizip.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
host string should be updated after <code><span class="identifier">SSL_set_tlsext_host_name</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">associator</span></code> is specialized
|
||
for <code><span class="identifier">bind_wrapper</span></code>
|
||
and <code><span class="identifier">bind_front_wrapper</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add non-allocating overload for error category message function.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Documentation
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Specifies when calling <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">message</span><span class="special">::</span><span class="identifier">prepare_payload</span><span class="special">()</span></code> is optional.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Operations affected by <code><span class="identifier">basic_stream</span><span class="special">::</span><span class="identifier">expires_after</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">teardown</span><span class="special">()</span></code>
|
||
and <code><span class="identifier">async_teardown</span><span class="special">()</span></code> are customization points.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moving or copying <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">serializer</span></code>
|
||
after first usage is undefined behaviour.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">permessage_deflate</span></code> should
|
||
be configured before performing the WebSocket handshake.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">bytes_transferred</span></code>
|
||
in http reads operations reports the number of bytes consumed
|
||
by the HTTP parser.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Emile Cormier, JohannesWilde, yhzx233
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/bimap/">Bimap</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed heterogeneous lookup for side collections (<a href="https://github.com/boostorg/bimap/pull/42">PR#42</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/bind/">Bind</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed outdated mentions of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span></code>
|
||
that is not part of the library any more. Thanks to <a href="https://github.com/eoan-ermine">Danil
|
||
Sidoruk</a> for the PR <a href="https://github.com/boostorg/conversion/pull/28">PR#28</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a new <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">functor</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
header with a <code><span class="identifier">functor</span></code>
|
||
class template for wrapping a raw function into a function object
|
||
class.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed <code><span class="identifier">null_deleter</span></code>,
|
||
<code><span class="identifier">fclose_deleter</span></code> and
|
||
checked deleter definitions so that they don't bring namespace <code><span class="identifier">boost</span></code> into argument-dependent lookup.
|
||
Users may need to either explicitly qualify the namespace of the
|
||
called function or add a <code><span class="keyword">using</span></code>-declaration.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_path</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_string</span></code> methods now remove
|
||
duplicate directory separators in the returned paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_path</span></code>,
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_string</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">make_preferred</span></code>
|
||
and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> avoid converting
|
||
between backslashes and forward slashes in path root names. For example,
|
||
on Windows, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\\\\\?\\\\c:\\\\foo"</span><span class="special">).</span><span class="identifier">generic_string</span><span class="special">()</span></code> now returns "\\?\c:/foo"
|
||
instead of "//?/c:/foo". Similarly, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\\\\\host/share/foo/.."</span><span class="special">).</span><span class="identifier">lexically_normal</span><span class="special">()</span></code> now returns "\\host\share".
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">equivalent</span></code>
|
||
now indicates error if either one of the paths doesn't exist.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">absolute</span></code>
|
||
now returns a path with a trailing directory separator when the input
|
||
path has an empty <code><span class="identifier">relative_path</span><span class="special">()</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/301">#301</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a <code><span class="identifier">unique_path</span></code>
|
||
overload taking a single <code><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span></code>
|
||
argument. The overload generates a unique path using the default
|
||
path model.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">weakly_canonical</span></code>
|
||
now produces an absolute path if the input path is relative and contains
|
||
no elements that exist in the filesystem. (<a href="https://github.com/boostorg/filesystem/issues/300">#300</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">ignore_attribute_errors</span></code>
|
||
option for <code><span class="identifier">copy_file</span></code>
|
||
and <code><span class="identifier">copy</span></code> operations.
|
||
The new option allows to ignore possible errors while copying file
|
||
attributes. (<a href="https://github.com/boostorg/filesystem/issues/179">#179</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Linux, <code><span class="identifier">copy_file</span></code>
|
||
backends based on <code><span class="identifier">sendfile</span></code>
|
||
and <code><span class="identifier">copy_file_range</span></code>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On POSIX systems that support <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html"><code><span class="identifier">fdopendir</span></code></a>, <code><span class="identifier">openat</span></code> and related APIs defined
|
||
in POSIX.1-2008, as well as on Windows, <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed APIs that were previously declared deprecated. In particular,
|
||
<code><span class="identifier">path</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code> member
|
||
functions, <code><span class="identifier">is_regular</span></code>,
|
||
<code><span class="identifier">copy_directory</span></code>,
|
||
<code><span class="identifier">symbolic_link_exists</span></code>,
|
||
<code><span class="identifier">complete</span></code>, <code><span class="identifier">copy_option</span></code>, <code><span class="identifier">symlink_option</span></code>,
|
||
as well as <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">convenience</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path_traits</span><span class="special">.</span><span class="identifier">hpp</span></code> headers were removed. Possible
|
||
replacements for the removed components are mentioned in the documentation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">path</span></code>
|
||
construction, assignment and appending from container types (e.g.
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span></code>)
|
||
is now disabled by default. Users can still enable this functionality
|
||
by defining <code><span class="identifier">BOOST_FILESYSTEM_DEPRECATED</span></code>.
|
||
This functionality remains deprecated and will be completely removed
|
||
in a future release.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/function/">Function</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1247">PR#1247</a> Use if constexpr macro instead of condition
|
||
macro
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1242">PR#1242</a> Pass strategy to sort by side
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1234">PR#1234</a> Add cmake files for clang/mac/darwin/arm64
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1231">#1231</a>, <a href="https://github.com/boostorg/geometry/issues/1244">#1244</a> Fix invalid set operations
|
||
for CCW polygons
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1259">#1259</a> Fix compilation error with CUDA NVCC compiler
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1250">#1250</a> Fix buffer of linestring returning incorrect
|
||
inner polygon
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1230">#1230</a> Fix union operation perturbing a point and
|
||
returning wrong result
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1229">#1229</a> Fix union producing self intersections
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1248">PR#1248</a> Fix buffer issue by setting turns in closed
|
||
clusters as non traversable
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1246">PR#1246</a> Fix compilation of converter and is_base_of
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes of errors and warnings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for C++03 is deprecated and will be removed in a future release.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Endian is now used to deal with endianness.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Aliases to Boost.System and Boost.Container components are deprecated
|
||
and <strong>will be completely removed in 1.87.0</strong>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Conversion of described classes supports private members.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Rvalue reference overload for <code><span class="identifier">visit</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add conversion support for path-like types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parsing into described classes correctly considers inherited members.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Conversion of self-referential sequences is disabled.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed reference handling in visit.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New API for transporting of error objects and exceptions between
|
||
threads: <code><span class="identifier">try_capture_all</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
able to transport exceptions captured via <code><span class="identifier">try_capture_all</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
transporting dynamically captured error objects with improved efficiency.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Old <code><span class="identifier">make_shared_context</span></code>/<code><span class="identifier">capture</span></code> APIs are deprecated, will
|
||
be removed in the next release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed support for transporting of dynamicaly captured error objects
|
||
in exceptions.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Significant rewrite of the internal logic to separate optimized and
|
||
C++ Standard Library IO-based streams:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++ Standard Library based streams now constructed in less
|
||
cases leading to <strong>better performance</strong>;
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
less template instantiations and simpler code;
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
always use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span></code>
|
||
(do not use custom traits from input/output types as it leads
|
||
to linktime or runtime errors);
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
fixed missuse of forward declared boost::array (thanks to
|
||
<a href="https://github.com/13steinj">13steinj</a> for
|
||
the report <a href="https://github.com/boostorg/lexical_cast/issues/64">#64</a>!);
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
support for <code><span class="keyword">volatile</span></code>
|
||
input types was dropped, following the C++ Standard Library
|
||
trend.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized conversions from std::basic_string_view and boost::basic_string_view
|
||
<a href="https://github.com/boostorg/lexical_cast/issues/30">#30</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.NumericConversion and Boost.MPL. Fixed
|
||
some cases of converting floting point types to arithmetics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library now compiles and works fine with <code><span class="special">-</span><span class="identifier">fno</span><span class="special">-</span><span class="identifier">sanitize</span><span class="special">-</span><span class="identifier">recover</span><span class="special">=</span><span class="identifier">integer</span></code> <a href="https://github.com/boostorg/lexical_cast/issues/45">#45</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix linker issues due to missing typeinfo for <code><span class="identifier">char8_t</span></code>
|
||
in C++20 mode
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix IConv compile flags when using ICU that has a bundled IConv
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">collator</span></code> now throws
|
||
on construction, if at all, as documented
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">collator</span></code> no longer
|
||
derives from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">collator</span></code>
|
||
to avoid possible type confusing when it isn't available for the
|
||
current backend <a href="https://github.com/boostorg/locale/pull/216">PR#216</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Throw an exception when a faulty IConv library is detected (e.g.
|
||
on some MacOS versions) instead of looping indefinitely <a href="https://github.com/boostorg/locale/pull/218">PR#218</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduce resolution of <code><span class="identifier">date_time</span></code>
|
||
to seconds as milliseconds where not easily available causing confusion
|
||
<a href="https://github.com/boostorg/locale/issues/221">#221</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a new collection of optimization algorithms:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Differential Evolution <a href="https://github.com/boostorg/math/pull/1062">PR#1062</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
JSO <a href="https://github.com/boostorg/math/pull/1065">PR#1065</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Random Search <a href="https://github.com/boostorg/math/pull/1071">PR#1071</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
CMA-ES <a href="https://github.com/boostorg/math/pull/1074">PR#1074</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix Divide by 0 warning in NCF survival function
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix constexpr depth limits of ccmath::floor/ceil fail for large arguments
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve accuracy of quartic_roots
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix cstdfloat numeric limits detection macro for libstdc++14
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix for MSVC UCRT defining _Complex_I in complex.h when using C++14
|
||
<a href="https://github.com/boostorg/math/pull/1060">PR#1060</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve cstdfloat iostream <a href="https://github.com/boostorg/math/pull/1066">PR#1066</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix redefnition of Boost.Config macros when using standalone mode
|
||
in a non-standalone environment
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Significant improvements to code coverage with associated bug fixes
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/msm/">MSM</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major Update</strong>. Backend update (back11).
|
||
Requires C++ 11. The documentation now uses it as default.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature</strong>. New front-end (PlantUML).
|
||
Requires C++ 20
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various Bugfixes (compiler errors and warnings, priority of deferred
|
||
events)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed documentation errors.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix deprecation warnings from C++23 &lt;limits&gt; <a href="https://github.com/boostorg/multiprecision/pull/575">PR#575</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix cpp_bin_float for small bit counts <a href="https://github.com/boostorg/multiprecision/pull/577">PR#577</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix -Wpessimizing-move <a href="https://github.com/boostorg/multiprecision/pull/580">PR#580</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add covecov runs
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduce truncation in cpp_dec_float multiplication <a href="https://github.com/boostorg/multiprecision/pull/585">PR#585</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix complex_adaptor to match precision requirements <a href="https://github.com/boostorg/multiprecision/pull/597">PR#597</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix for breaking changes in tommath <a href="https://github.com/boostorg/multiprecision/pull/603">PR#603</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix for types that can be converted to number participting in arithmetic
|
||
operator overloads <a href="https://github.com/boostorg/multiprecision/issues/608">#608</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking change</strong>: Boost.MySQL now
|
||
requires linking to the new <strong>Boost.Charconv</strong>
|
||
compiled library. This addresses a locale-dependency problem, increases
|
||
efficiency, and powers the new client-side SQL formatting feature.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>connection pools</strong>,
|
||
which allows re-using sessions and provides built-in reconnection
|
||
and error handling.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>type-erased
|
||
connections</strong> (<code><span class="identifier">any_connection</span></code>
|
||
class). <code><span class="identifier">any_connection</span></code>
|
||
is not a template and features simpler connection establishment and
|
||
reconnection semantics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>client-side
|
||
SQL formatting functions</strong> (<code><span class="identifier">format_sql</span></code>
|
||
and <code><span class="identifier">format_sql_to</span></code>).
|
||
These allow securely composing queries client-side, which enables
|
||
patterns like batch inserts, dynamic filters or PATCH-like updates.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a performance issue affecting <code><span class="identifier">close_statement</span></code>
|
||
and <code><span class="identifier">async_close_statement</span></code>
|
||
that could cause significant delays in application code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for building with <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The deprecated execution interface (<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code> and their
|
||
async counterparts) now triggers warnings, as it's scheduled for
|
||
removal in Boost 1.86.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a bug that caused some error messages to be truncated.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Warning cleanup. Builds are now clean from warnings when building
|
||
with <code><span class="special">-</span><span class="identifier">Wall</span></code>
|
||
and <code><span class="special">-</span><span class="identifier">Wextra</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All <code><span class="identifier">field_view</span></code> constructors
|
||
are now stable.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library internals have been rewritten using a sans-io approach
|
||
to reduce complexity.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/numeric/odeint/">Odeint</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking change</strong>: The library now
|
||
explicitly requires C++14 instead of implicitly by including Boost.Math
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix compatibility with Thrust 1.10.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed C++03 Boost components:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Array
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bind
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Function
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Static_assert
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get_name</span></code> now can work with local
|
||
types on some compilers. Thanks to <a href="https://github.com/schaumb">Bela
|
||
Schaum</a> for the PR <a href="https://github.com/boostorg/pfr/pull/152">PR#152</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed unused implementation details. Thanks to <a href="https://github.com/denzor200">Denis
|
||
Mikhailov</a> for the PR <a href="https://github.com/boostorg/pfr/pull/154">PR#154</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow throwing exceptions from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">structure_to_tuple</span></code>.
|
||
Thanks to <a href="https://github.com/denzor200">Denis Mikhailov</a>
|
||
for the bug report <a href="https://github.com/boostorg/pfr/issues/155">#155</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Field reflection trick is now described in the docs. Thanks to all
|
||
the discussion participans in <a href="https://github.com/boostorg/pfr/issues/150">#150</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/random/">Random</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added splitmix64 PRNG <a href="https://github.com/boostorg/random/pull/89">PR#89</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The deprecated header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">cygwin_error</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
has been removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The original and obsolete (32 bit) MinGW is no longer supported.
|
||
MinGW-w64 (both 64 and 32 bit) is still supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="keyword">operator</span><span class="special">&amp;</span></code>
|
||
now works for <code><span class="identifier">result</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> (by way of taking a nullary function.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">|=</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature: stacktrace from arbitrary
|
||
exception</strong>. On some POSIX platforms <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">stacktrace</span><span class="special">::</span><span class="identifier">from_current_exception</span><span class="special">()</span></code> 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 <code><span class="identifier">libsfe</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed memory consumption on Windows with <code><span class="identifier">boost_stacktrace_windbg</span></code>.
|
||
Thanks to <a href="https://github.com/ycyclop">ycyclop</a>
|
||
for reporting the issue <a href="https://github.com/boostorg/stacktrace/issues/111">#111</a>, to <a href="https://github.com/correa">Thiago
|
||
A. Correa</a> for providing more information, to <a href="https://github.com/akarpovskii">Andrei
|
||
Karpovskii</a> for providing a possible fix.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed library build with non hidden visibility. Thanks to <a href="https://github.com/JBouwer">Jan Bouwer</a> for the report
|
||
and information on how to fix it.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a separate section on async signal safety to the docs. Many
|
||
thanks to <a href="https://github.com/tworonix">tworonix</a>
|
||
for highlighting the problem in <a href="https://github.com/boostorg/stacktrace/issues/131">#131</a>
|
||
and to <a href="https://github.com/itrofimow">itrofimow</a>
|
||
for information on the problem.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change the behavior of <code><span class="identifier">iterator_interface</span></code>
|
||
for input iterators in C++20 and later, to more closely follow the
|
||
C++20 concepts.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove hidden friends from <code><span class="identifier">iterator_interface</span></code>
|
||
to fix errors about concepts being redefined with different constraints.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add a new <code><span class="identifier">v3</span></code> inline
|
||
namespace, containing a new iterator_interface based on deducing
|
||
this instead of CRTP (C++23 and later).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add an rvalue-qualified overload of <code><span class="identifier">closure</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code>, to prevent dangling temporaries.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Respect library-spcific _NO_LIB macros <a href="https://github.com/boostorg/test/pull/406">PR#406</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Supress MSVC C4702 from __builtin_unreachable() on intentionally
|
||
unreachable code
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix boost::function streaming error <a href="https://github.com/boostorg/test/pull/411">PR#411</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for a <code><span class="identifier">value_type</span></code>
|
||
or <code><span class="identifier">init_type</span></code> (if
|
||
applicable) argument to bypass creating an intermediate object. The
|
||
argument is already the same type as the would-be intermediate object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for <code><span class="identifier">k</span><span class="special">,</span><span class="identifier">v</span></code>
|
||
arguments on map containers to delay constructing the object until
|
||
it is certain that an element should be inserted. This optimization
|
||
happens when the map’s <code><span class="identifier">key_type</span></code>
|
||
is move constructible or when the <code><span class="identifier">k</span></code>
|
||
argument is a <code><span class="identifier">key_type</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed support for allocators with explicit copy constructors (<a href="https://github.com/boostorg/unordered/pull/234">PR#234</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bug in the <code><span class="keyword">const</span></code>
|
||
version of <code><span class="identifier">unordered_multimap</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">hash</span><span class="special">,</span> <span class="identifier">eq</span><span class="special">)</span></code> (<a href="https://github.com/boostorg/unordered/pull/238">PR#238</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed more of the pre-C++11 macro and workarounds.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/200">#200</a>: Emitted pragmas lack terminating newline
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/202">#202</a>: YYMARKER not updated when fill called on BOOST_WAVE_BSIZE
|
||
boundary
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_5_1_0">B2
|
||
version 5.1.0</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</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>
|
||
|
||
|
||
<div id="version_1_84_0.updated_default_target_windows_v">
|
||
<h3><span class="link">Updated
|
||
default target Windows version</span></h3>
|
||
<p>
|
||
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.
|
||
</p>
|
||
<p>
|
||
The affected libraries include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Atomic
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Beast
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Chrono
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.DateTime
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.DLL
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Filesystem
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Interprocess
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Log
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Pool
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Process
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.System
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Stacktrace
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Thread
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.UUID
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
as well as libraries that depend on the above.
|
||
</p>
|
||
<p>
|
||
Users are able to change the default by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>
|
||
or <code><span class="identifier">_WIN32_WINNT</span></code> 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:
|
||
</p>
|
||
<pre> b2 variant=release define=BOOST_USE_WINAPI_VERSION=0x0601 stage
|
||
</pre>
|
||
<p>
|
||
Note, however, that individual libraries may have their own requirements on
|
||
the minimum supported Windows version.
|
||
</p>
|
||
<p>
|
||
The list of Windows API version numbers can be seen on <a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx">this</a>
|
||
page.
|
||
</p>
|
||
</div>
|
||
<div id="version_1_84_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/cobalt/">Cobalt</a>:</span> Basic algorithms and types
|
||
for C++20 coroutines, from Klemens Morgenstern.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/redis/">Redis</a>:</span> Redis async client library
|
||
built on top of Boost.Asio, from Marcelo Zimbres Silva.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/any/pull/26">PR#26</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed reference documentation generation. Now it is not overwritten
|
||
by Boost.PFR reference. Thanks to Peter Dimov for the debugging.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Changed to require C++11 as the minimum language standard. C++03
|
||
is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed deprecated functionality from the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">execution</span></code>
|
||
namespace.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed deprecated invocation and allocation hooks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">try_send_via_dispatch</span></code>
|
||
and <code><span class="identifier">try_send_n_via_dispatch</span></code>
|
||
functions to channels.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added compatibility between Asio's placeholders and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved C++11 support for channels that have multiple completion
|
||
signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility between channel asynchronous operations and
|
||
<code><span class="identifier">any_completion_handler</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility between <code><span class="identifier">any_completion_handler</span></code>
|
||
and compilation using <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing equality operators for comparing mixed executor property
|
||
types belonging to the same category.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an issue where <code><span class="identifier">spawn</span></code>-based
|
||
stackful coroutines would terminate the program when used with asynchronous
|
||
operations that have a completion signature starting with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a crash that may occur when attempting to access a default-constructed
|
||
<code><span class="identifier">any_completion_handler</span></code>
|
||
object's associators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>
|
||
class's <code><span class="identifier">async_handshake</span></code>
|
||
operation so that it works with a defaulted completion token.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated all examples to use C++11 as the minimum language standard.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported, the minimum required language version
|
||
is C++11.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for x87 extended double with reduced precision, which
|
||
is used on FreeBSD and OpenBSD. (<a href="https://github.com/boostorg/atomic/issues/14">#14</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for Windows versions older than Windows 10 is deprecated
|
||
and will be removed in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">immediate_executor</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove deprecated allocation and invocation hooks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use the explicit type std::size_t when completing transfer_op.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced <code><span class="identifier">BOOST_ASIO_INITFN_RESULT_TYPE</span></code>
|
||
with <code><span class="identifier">BOOST_ASIO_INITFN_AUTO_RES</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">server</span><span class="special">-</span><span class="identifier">flex</span><span class="special">-</span><span class="identifier">awaitable</span></code> example resets parser.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Corrected the <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_ping</span><span class="special">/</span><span class="identifier">pong</span></code>
|
||
handler requirement.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update documentation for <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_write_some</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/container_hash/">ContainerHash</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/conversion/pull/27">PR#27</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> utility function has been
|
||
renamed to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">invoke_swap</span></code>
|
||
to avoid forming a potential infinite recursion when the arguments
|
||
are not swappable. The new function is defined in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">invoke_swap</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and is functionally equivalent to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code>.
|
||
The old <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> name is preserved for backward
|
||
compatibility but deprecated and will be removed in a future release.
|
||
Its <code><span class="keyword">noexcept</span></code> specification
|
||
has been removed to avoid compile errors caused by compile-time recursion.
|
||
<code><span class="identifier">BOOST_ALLOW_DEPRECATED_SYMBOLS</span></code>
|
||
or <code><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
|
||
can be defined to suppress deprecation warnings for the transition
|
||
period. (<a href="https://github.com/boostorg/core/issues/148">#148</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Headers <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code> are deprecated and will be
|
||
removed. Please, switch to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">invoke_swap</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
<code><span class="identifier">BOOST_ALLOW_DEPRECATED_HEADERS</span></code>
|
||
or <code><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
|
||
can be defined to suppress deprecation warnings.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/crc/">CRC</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/dll/pull/66">PR#66</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
As was announced in Boost 1.82.0, C++03 is no longer supported. A
|
||
C++11 or later compiler is required.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that some <code><span class="identifier">directory_entry</span></code>
|
||
observers taking <code><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span></code>
|
||
argument did not clear the error code on successful return. (<a href="https://github.com/boostorg/filesystem/issues/291">#291</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, improved robustness of date and time conversion and added
|
||
support for dates before January 1, 1970. (<a href="https://github.com/boostorg/filesystem/issues/293">#293</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed support for Windows CE that was deprecated since Boost.Filesystem
|
||
1.79.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">string_file</span><span class="special">.</span><span class="identifier">hpp</span></code> header. The header was deprecated
|
||
since Boost.Filesystem 1.79.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> Support for Windows
|
||
versions older than Windows 10 is deprecated and will be removed
|
||
in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1138">#1138</a> Fix difference of two polygons
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1183">#1183</a> Fix for union_ incomplete result polygon
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1184">#1184</a> Fix for intersection
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1186">#1186</a> Fix for union_ improper inner ring assignment
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes of errors and warnings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/heap/">Heap</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
New requirement will be C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implement parsing directly into user types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add conversion categories for optionals and variants.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Relax iterator requirements for constructors from iterator pairs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix reading beyond input buffer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix inconsistent choice of init list constructor.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
class result&lt;T&gt; marked nodiscard.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added member typedef result&lt;T&gt;::value_type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
verbose_diagnostic_info defers conversion to string until an error
|
||
handling scope is reached.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for embedded development.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved Visual Studio 2015 compatibility (thanks godmaycrying).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Minor bug fixes an improvements.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped support for GCC 4.8 and 4.9.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/lexical_cast/pull/62">PR#62</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed -Wdeprecated-copy-with-dtor warnings with clang. Thanks to
|
||
<a href="https://github.com/Romain-Geissler-1A">Romain Geissler</a>
|
||
for the PR <a href="https://github.com/boostorg/lexical_cast/pull/59">PR#59</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.Range <a href="https://github.com/boostorg/lexical_cast/pull/63">PR#63</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">to_title</span></code> for the
|
||
WinAPI backend returns the string unchanged instead of an empty string
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for <code><span class="identifier">char8_t</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">u8string</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix off-by-one error when using negative times <a href="https://github.com/boostorg/locale/pull/198">PR#198</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix escape-handling of curly braces in format strings <a href="https://github.com/boostorg/locale/issues/194">#194</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix some build errors and warnings, notably one on MSVC, see <a href="https://github.com/boostorg/locale/issues/189">#189</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
New requirement will be C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported. A C++11 or later compiler is required.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for Windows versions older than Windows 10 is deprecated
|
||
and will be removed in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improve ccmath error detection.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove use of deprecated std::numeric_limits&lt;&gt;::has_denorm,
|
||
see <a href="https://github.com/boostorg/math/issues/1028">1028</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct non-convergence bug in non-central-t distribution, see <a href="https://github.com/boostorg/math/issues/1035">1035</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Adjust Bessel function approximation to [sub 1]F[sub 1] to avoid
|
||
taking tgamma at a negative integer, see <a href="https://github.com/boostorg/math/issues/1034">1034</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Avoid spurious overflow and divide by zero in ibeta, see <a href="https://github.com/boostorg/math/issues/1006">1006</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve accuracy when using Sterling's approximation to tgamma, completes
|
||
work started in <a href="https://github.com/boostorg/math/pull/1007">1007</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix inverse_discrete_quantile for large initial guesses, see <a href="https://github.com/boostorg/math/pull/1007">1007</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve Newton root finding, see <a href="https://github.com/boostorg/math/pull/1000">1000</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix median_absolute_deviation for non-zero centre, see <a href="https://github.com/boostorg/math/pull/997">997</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix up cstdfloat.hpp for gcc-14.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update to work for the new types declared in &lt;stdfloat&gt;.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Change hypergeometric_distribution to use 64 rather than 32 bit integers
|
||
to avoid unnecessary overflow and restrictions on use.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a serialization-related compile-time bug in old compilers without
|
||
ADL support (issue <a href="https://github.com/boostorg/multi_index/issues/70">#70</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>
|
||
in the tests, fixes <a href="https://github.com/boostorg/multiprecision/issues/567">567</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct cpp_int::eval_convert_to to be noexcept, fixes <a href="https://github.com/boostorg/multiprecision/issues/553">553</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make sure that changing the global precision, also changes the current
|
||
thread precision.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix rational_adaptor construction bug, fixes <a href="https://github.com/boostorg/multiprecision/issues/540">540</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">reset_connection</span></code>
|
||
and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">async_reset_connection</span></code>. These functions
|
||
clean session state (including prepared statements, variables, locks
|
||
and more) without closing and re-opening the connection.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added error codes introduced in MySQL server v8.1.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added fuzz testing for the deserialization functions.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature: field names reflection</strong>.
|
||
Added new <code><span class="keyword">constexpr</span></code>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get_name</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;()</span></code>
|
||
function that returns a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
||
with a name of field at index <code><span class="identifier">N</span></code>
|
||
of an aggregate <code><span class="identifier">T</span></code>.
|
||
Requires C++20. <code><span class="identifier">BOOST_PFR_CORE_NAME_ENABLED</span></code>
|
||
is defined to 1 if the functionality is available. Many thanks to
|
||
<a href="https://github.com/denzor200">Denis Mikhailov</a>,
|
||
<a href="https://github.com/schaumb">Bela Schaum</a> and
|
||
<a href="https://github.com/X-Ryl669">X-Ryl669</a> for the
|
||
PR <a href="https://github.com/boostorg/pfr/pull/129">PR#129</a>
|
||
and implementation ideas.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">for_each_field</span><span class="special">()</span></code>
|
||
is now <code><span class="keyword">constexpr</span></code> for
|
||
C++17. Many thanks to <a href="https://github.com/alexkaratarakis">Alexander
|
||
Karatarakis</a> for the PR <a href="https://github.com/boostorg/pfr/pull/134">PR#134</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Version 1.15.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add detection of Microsoft STL (from Henrik Gaßmann).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/random/">Random</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflows in tests using Boost.Multiprecision
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code>
|
||
has been removed. Ratio is now implemented in terms of the standard
|
||
<code><span class="special">&lt;</span><span class="identifier">ratio</span><span class="special">&gt;</span></code> header.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported. Thanks to <a href="https://github.com/leha-bot">Alex</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/139">PR#139</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">addr2line</span></code> for
|
||
pie binaries. Thanks to <a href="https://github.com/ja2142">ja2142</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/138">PR#138</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed build with MinGW-w64 12+. Thanks to <a href="https://github.com/yhsb2k">yhsb2k</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/140">PR#140</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing include. Thanks to <a href="https://github.com/francesco-ballarin">Francesco
|
||
Ballarin</a> for the PR <a href="https://github.com/boostorg/stacktrace/pull/143">PR#143</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;,</span> <span class="identifier">E</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">|</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&amp;</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&amp;=</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed useage of PRIxPTR for glibc 2.2 - 2.17 <a href="https://github.com/boostorg/test/pull/392">PR#392</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed MSVC warning C5263: calling 'std::move' on a temporary object
|
||
prevents copy elision <a href="https://github.com/boostorg/test/pull/390">PR#390</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS</span><span class="special">((</span><span class="identifier">A</span><span class="special">)(</span><span class="identifier">B</span><span class="special">)(</span><span class="identifier">C</span><span class="special">)(</span><span class="identifier">D</span><span class="special">))</span></code> changed syntax to <code><span class="identifier">BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS</span><span class="special">(</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">,</span> <span class="identifier">D</span><span class="special">)</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped Boost.PP dependency.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/typeof/">TypeOf</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_set</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="special">[</span><span class="identifier">c</span><span class="special">]</span><span class="identifier">visit_while</span></code>
|
||
operations to concurrent containers, with serial and parallel variants.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added efficient move construction of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_</span><span class="special">(</span><span class="identifier">map</span><span class="special">|</span><span class="identifier">set</span><span class="special">)</span></code> from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_</span><span class="special">(</span><span class="identifier">map</span><span class="special">|</span><span class="identifier">set</span><span class="special">)</span></code> and vice versa.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added bulk visitation to concurrent containers for increased lookup
|
||
performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added debug-mode mechanisms for detecting illegal reentrancies into
|
||
a concurrent container from user code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Boost.Serialization support to all containers and their (non-local)
|
||
iterator types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bug in member of pointer operator for local iterators of closed-addressing
|
||
containers (<a href="https://github.com/boostorg/unordered/pull/221">PR#221</a>, credit goes to GitHub user vslashg
|
||
for finding and fixing this issue).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Starting with this release, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_</span><span class="special">[</span><span class="identifier">multi</span><span class="special">]</span><span class="identifier">set</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_</span><span class="special">[</span><span class="identifier">multi</span><span class="special">]</span><span class="identifier">map</span></code> only work with C++11 onwards.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/variant/pull/107">PR#107</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped Boost.Move and Boost.Bind dependencies.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/188">#188</a>: Segmentation fault when "#pragma\n" is encountered
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</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>
|
||
|
||
|
||
<div id="version_1_83_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
These are patches from library authors which were found too late to be fixed
|
||
in the release.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
JSON
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Compilation on Windows ARM platforms may fail for missing intrinsics,
|
||
see <a href="https://github.com/boostorg/json/issues/926">#926</a> and <a href="https://github.com/boostorg/json/issues/927">#927</a>. <a href="https://github.com/boostorg/json/commit/c4ce8509d015a0b75cfa9d36609b8409821a9c86.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Unordered
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix erroneous copy assigment operator that would destroy non-existent
|
||
elements, see <a href="https://github.com/boostorg/unordered/issues/205">#205</a>. <a href="https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span> A repository of C++11
|
||
implementations of standard components added in later C++ standards, from
|
||
Peter Dimov and contributors.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">anys</span><span class="special">::</span><span class="identifier">unique_any</span></code> C++11 class - an alternative
|
||
to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> (or to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">any</span></code>)
|
||
that does not require copy or move construction from the held type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ported documentation to Quickbook, Doxygen comments now used in code.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation of <code><span class="identifier">atomic_ref</span></code>
|
||
for <code><span class="keyword">const</span></code>-qualified
|
||
types. Note that even <code><span class="keyword">const</span></code>-qualified
|
||
atomic objects must still reside in read-write memory. (<a href="https://github.com/boostorg/atomic/issues/62">#62</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Remove use of deprecated Boost.Ratio features.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">latch</span><span class="special">.</span><span class="identifier">hpp</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">latch</span></code> (contributed by Christian
|
||
Mazakas.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">shared_lock</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
a (partial) implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_lock</span></code>
|
||
(contributed by Christian Mazakas.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for incomplete types to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">type_name</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bit manipulation functions in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
are now <code><span class="keyword">constexpr</span></code> on
|
||
recent MSVC versions (VS2019 update 5 and later.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">byteswap</span></code> (an implementation of
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byteswap</span></code> from C++23) to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved the yield primitives <code><span class="identifier">sp_thread_pause</span></code>,
|
||
<code><span class="identifier">sp_thread_yield</span></code>,
|
||
<code><span class="identifier">sp_thread_sleep</span></code> from
|
||
SmartPtr implementation details to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">yield_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed tests failures on glibc 2.36+, thanks to <a href="https://github.com/sgn">Đoàn
|
||
Trần Công Danh</a> for the bugreport <a href="https://github.com/boostorg/dll/issues/58">#58</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">refresh</span></code>
|
||
method that updates internal cached file statuses for the directory
|
||
entry identified by path.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">directory_entry</span></code>
|
||
constructors and modifiers that initialize or modify the path now
|
||
automatically call <code><span class="identifier">refresh</span></code>.
|
||
This may result in errors that were not indicated before and in
|
||
<strong>v3</strong>, if querying the filesystem for
|
||
file statuses fails (e.g. if the file does not exist). This new behavior
|
||
is similar to std::filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">directory_entry</span></code>
|
||
constructors and methods taking <code><span class="identifier">file_status</span></code>
|
||
parameters are removed. Users are recommended to remove these arguments
|
||
and rely on <code><span class="identifier">directory_entry</span></code>
|
||
calling <code><span class="identifier">refresh</span></code> internally.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">directory_entry</span></code>
|
||
member methods for checking the file type of the file, similar to
|
||
std::filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added more methods for testing file status: <code><span class="identifier">is_block_file</span></code>,
|
||
<code><span class="identifier">is_character_file</span></code>,
|
||
<code><span class="identifier">is_fifo</span></code>, <code><span class="identifier">is_socket</span></code> and <code><span class="identifier">is_reparse_file</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">recursive_directory_iterator</span></code>
|
||
is now more likely to reuse information about the file type that
|
||
is obtained during filesystem iteration. This may improve performance.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/288">#288</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
File streams defined in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">fstream</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
are now movable, if the standard library file streams are. (<a href="https://github.com/boostorg/filesystem/issues/280">#280</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">cstdio</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
with a portable <code><span class="identifier">fopen</span></code>
|
||
overload that takes <code><span class="identifier">path</span></code>
|
||
as the first argument. This function is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fopen</span></code>, except that on Windows it
|
||
uses the native wide character encoding for paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Generic <code><span class="identifier">path</span></code> comparison
|
||
operators are now more restricted to avoid potential ambiguities
|
||
when user's code contains a <code><span class="keyword">using</span>
|
||
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">;</span></code> directive. (<a href="https://github.com/boostorg/filesystem/issues/285">#285</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed potential overload resolution ambiguity in users' code, where
|
||
<code><span class="identifier">path</span></code> constructors
|
||
from iterators could interfere with function overloads taking a
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> argument. (<a href="https://github.com/boostorg/filesystem/issues/287">#287</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, added more workarounds for errors returned by various
|
||
filesystems when creating a directory iterator. (<a href="https://github.com/boostorg/filesystem/issues/284">#284</a>,
|
||
<a href="https://github.com/boostorg/filesystem/issues/286">#286</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, relaxed access rights needed for querying file times.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/290">#290</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added smart-pointer syntax to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweight</span></code>
|
||
(<code><span class="keyword">operator</span><span class="special">*</span></code>
|
||
and <code><span class="keyword">operator</span><span class="special">-&gt;</span></code>
|
||
dereferencing to the underlying value).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a situation where the mutex used by <a href="https://www.boost.org/libs/flyweight/doc/reference/locking.html#simple_locking_synopsis"><code><span class="identifier">simple_locking</span></code></a> was not
|
||
recursive (issue <a href="https://github.com/boostorg/flyweight/issues/12">#12</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1140">PR#1140</a> Drop dependencies and replace boost with
|
||
std in several places
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1154">PR#1154</a> Add missing headers so that all headers
|
||
compile independently complying with Boost policy
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1157">PR#1157</a> Check const Ring concept in calculate_point_order
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1100">#1100</a> Fix for union
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1139">#1139</a> Fix for different geometry types
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1158">#1158</a> Fix for convex hull
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1161">#1161</a> Fix within algorithm for geometries having
|
||
a pole as a vertex
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes of errors and warnings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">is_iterator</span></code>
|
||
type trait that allows to test whether the type qualifies as an iterator
|
||
type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">filter_iterator</span></code> now
|
||
supports move-construction of the adopted iterator and the function
|
||
object. (<a href="https://github.com/boostorg/iterator/pull/79">PR#79</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The library now only throws <code><span class="identifier">system_error</span></code>,
|
||
except for when allocation failed, in which case <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code>
|
||
is thrown.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Serialization behavior can now be changed by <code><span class="identifier">serialize_options</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Contextual conversions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser option for more precise number parsing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support <code><span class="identifier">parse_options</span></code>
|
||
in stream <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser option to allow <code><span class="identifier">Infinity</span></code>
|
||
and <code><span class="identifier">NaN</span></code> JSON literals.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser mode that only validates numbers rather than parsing them.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Numbers with exponent larger than <code><span class="identifier">INT_MAX</span></code>
|
||
are accepted by the parser and treated as infinity.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">object</span></code> member
|
||
functions that should provide strong guarantee.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix ambiguity of <code><span class="identifier">end</span></code>
|
||
call when <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">.</span><span class="identifier">hpp</span></code> is included.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix ASan failures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix error message for <code><span class="identifier">error</span><span class="special">::</span><span class="identifier">size_mismatch</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix conversion into tuple with const elements.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/index.html">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Bitwise/binary operators (left/right shift, binary and/or/xor/not)
|
||
are no longer supported in message catalog files matching GNU gettext
|
||
behavior
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">localization_backend_manager</span><span class="special">::</span><span class="identifier">get</span></code>
|
||
is deprecated, use the generator instead
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New converter classes as alternative to <code><span class="identifier">to_utf</span></code>/<code><span class="identifier">from_utf</span></code>/<code><span class="identifier">between</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix UB on invalid index in format strings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix conversion of UTF to e.g. iso-2022-jp on Windows without ICU
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use <code><span class="keyword">long</span> <span class="keyword">long</span></code>
|
||
as the count parameter for pluralized translations
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix movability and exception specification for some classes
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a possible infinite loop in <code><span class="identifier">text_file_backend</span></code>,
|
||
when the size of a formatted log record exceeds the <code><span class="identifier">rotation_size</span></code> limit. (<a href="https://github.com/boostorg/log/issues/209">#209</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added Numerical evaluation of Fourier transform of Daubechies scaling
|
||
functions <a href="https://github.com/boostorg/math/pull/921">921</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added logcdf function to statistical distributions <a href="https://github.com/boostorg/math/pull/946">946</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for C++23's <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code>
|
||
types <a href="https://github.com/boostorg/math/pull/978">978</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed various <code><span class="special">-</span><span class="identifier">Wmaybe</span><span class="special">-</span><span class="identifier">uninitialized</span></code>
|
||
warnings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">round</span></code> and
|
||
<code><span class="identifier">trunc</span></code> functions for
|
||
non-representable numbers <a href="https://github.com/boostorg/math/pull/968">968</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed calculation of mode for F-distribution <a href="https://github.com/boostorg/math/pull/976">976</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflow in beta distribution <a href="https://github.com/boostorg/math/pull/977">977</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflow in hypergeometric distribution <a href="https://github.com/boostorg/math/pull/987">987</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed calculation of median absolute deviation with non-zero center
|
||
<a href="https://github.com/boostorg/math/pull/997">997</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added an offset/from parameter to <code><span class="identifier">mp_from_sequence</span></code>,
|
||
<code><span class="identifier">mp_iota</span></code>, <code><span class="identifier">mp_iota_c</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_value</span></code>,
|
||
<code><span class="identifier">mp_list_v</span></code>, <code><span class="identifier">mp_rename_v</span></code>, <code><span class="identifier">mp_is_value_list</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added value list support to the primitives in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mp11</span><span class="special">/</span><span class="identifier">list</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added value list support to <code><span class="identifier">mp_repeat</span></code>,
|
||
<code><span class="identifier">mp_fill</span></code>, <code><span class="identifier">mp_at</span></code>, <code><span class="identifier">mp_back</span></code>,
|
||
<code><span class="identifier">mp_take</span></code>, <code><span class="identifier">mp_pop_back</span></code>, <code><span class="identifier">mp_drop</span></code>,
|
||
<code><span class="identifier">mp_insert</span></code>, <code><span class="identifier">mp_erase</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Updated range <code><span class="identifier">insert</span></code>
|
||
in non-unique ordered indices to preserve insertion order of equivalent
|
||
elements (issue <a href="https://github.com/boostorg/multi_index/issues/68">#68</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Serialization now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
|
||
instead of <code><span class="keyword">unsigned</span> <span class="keyword">long</span></code> to save and load the size of
|
||
a <code><span class="identifier">multi_index_container</span></code>
|
||
(<code><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
|
||
is smaller than <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
|
||
in LLP64 data models). <code><span class="identifier">multi_index_container</span></code>
|
||
serialization <a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class
|
||
version</a> has been bumped from 3 to 4 to reflect this change.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bug in rational adapter division <a href="https://github.com/boostorg/multiprecision/pull/542">542</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of global precsion changes in multi-threaded environments
|
||
<a href="https://github.com/boostorg/multiprecision/pull/552">552</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">cpp_int</span><span class="special">::</span><span class="identifier">eval_convert_to</span></code> noexcept specification
|
||
<a href="https://github.com/boostorg/multiprecision/pull/555">555</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Stored procedures are now fully supported, including <code><span class="identifier">SELECT</span></code> statements producing data
|
||
and procedures with <code><span class="identifier">OUT</span></code>
|
||
parameters.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for multi-queries, which allows running multiple semicolon-separated
|
||
statements with a single call.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A statically-typed interface has been added, which allows parsing
|
||
query results into user-provided types, using <a href="https://www.boost.org/libs/describe/">Boost.Describe</a>
|
||
structs and tuples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Text queries and prepared statements can now be executed using the
|
||
new <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_execution</span></code>
|
||
functions (and their async counterparts). These superseed <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code>.
|
||
The new functions allow access to new features, like the static interface.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A separate compilation mode has been added to help reduce build times.
|
||
Sources are included in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
which must be included in exactly one translation unit.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prepared statements can now be executed using an iterator pair to
|
||
specify parameters, using <code><span class="identifier">statement</span><span class="special">::</span><span class="identifier">bind</span></code>
|
||
and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code>. This enables use cases
|
||
where the number and type of parameters is not known at compile-time.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prepared statement execution now accepts parameters of type <code><span class="keyword">bool</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added error codes and verified compatibility with MySQL v8.0.33 and
|
||
MariaDB v11.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed potential problems with Windows' <code><span class="identifier">min</span><span class="special">()</span></code> and <code><span class="identifier">max</span><span class="special">()</span></code> macros.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All assertions now use <a href="https://www.boost.org/libs/assert/">Boost.Assert</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All exceptions are now thrown via <a href="https://www.boost.org/libs/throw_exception/">Boost.ThrowException</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Immediate completions are now correctly dispatched through the I/O
|
||
object executor.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change default <code><span class="identifier">BOOST_RATIO_VERSION</span></code>
|
||
to 2.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code>
|
||
is now deprecated and will eventually be removed when Boost.Ratio
|
||
is implemented in terms of the standard <code><span class="special">&lt;</span><span class="identifier">ratio</span><span class="special">&gt;</span></code>
|
||
header.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added addtional older platforms to CI system (e.g. GCC 4.6)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of <code><span class="identifier">uintptr_t</span></code>
|
||
to make sure it is portable on 32-bit systems <a href="https://github.com/boostorg/test/pull/353">353</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed warnings from <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">dtor</span></code> and <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">user</span><span class="special">-</span><span class="identifier">provided</span><span class="special">-</span><span class="identifier">dtor</span></code> <a href="https://github.com/boostorg/test/pull/375">375</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of <code><span class="identifier">check_is_close</span></code>
|
||
for C++23 <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code> types <a href="https://github.com/boostorg/test/pull/382">382</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/timer/">Timer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Remove dependency on Boost.Chrono, Boost.System, and others.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disable deprecated headers unless <code><span class="identifier">BOOST_TIMER_ENABLE_DEPRECATED</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_map</span></code>, a fast, thread-safe
|
||
hashmap based on open addressing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Sped up iteration of open-addressing containers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In open-addressing containers, <code><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span></code>, which previously returned nothing,
|
||
now returns a proxy object convertible to an iterator to the next
|
||
element. This enables the typical <code><span class="identifier">it</span>
|
||
<span class="special">=</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code> idiom without incurring any performance
|
||
penalty when the returned proxy is not used.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">parse_query</span></code> does
|
||
not recreate <code><span class="identifier">string_view</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/757">#757</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">url_view</span></code>/<code><span class="identifier">string_view</span></code> constructor requires
|
||
non-<code><span class="identifier">url_view_base</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/756">#756</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">IP</span><span class="special">-</span><span class="identifier">literal</span></code> can be <code><span class="identifier">IPv6addrz</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/711">#711</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/uuid/">UUID</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved generated x86 code for AVX targets. Removed the use of
|
||
<code><span class="identifier">lddqu</span></code> instruction
|
||
on SSE3 targets, which penalize performance on Intel NetBurst CPUs
|
||
but is more optimal on Skylake and later CPUs. (<a href="https://github.com/boostorg/uuid/pull/138">PR#138</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">uses_double_storage</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_10_1">B2
|
||
version 4.10.1</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item>
|
||
</channel>
|
||
</rss>
|