mirror of
https://github.com/boostorg/website.git
synced 2026-01-19 04:42:17 +00:00
3730 lines
192 KiB
XML
3730 lines
192 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<rss version="2.0" xmlns:boostbook="urn:boost-org:boostbook" xmlns:atom="http://www.w3.org/2005/Atom">
|
|
<channel>
|
|
<generator>Boost Website Site Tools</generator>
|
|
<title>Boost Downloads</title>
|
|
<link>https://www.boost.org/users/download/</link>
|
|
<atom:link href="https://www.boost.org/generated/downloads.rss" rel="self" type="application/rss+xml" />
|
|
<description></description>
|
|
<language>en-us</language>
|
|
<copyright>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)</copyright>
|
|
<item><title>Version 1.89.0</title><link>https://www.boost.org/users/history/version_1_89_0.html</link><guid>https://www.boost.org/users/history/version_1_89_0.html</guid><pubDate>Thu, 14 Aug 2025 02:16:56 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_89_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/bloom/">Bloom</a>:</span>
|
|
Bloom filters, from Joaquín
|
|
M López Muñoz.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_89_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>
|
|
<strong>Initial support for C++20 Modules</strong>.
|
|
See the docs for more info.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added allocator constructors to <code><span class="identifier">execution_context</span></code>,
|
|
<code><span class="identifier">io_context</span></code> and <code><span class="identifier">thread_pool</span></code>, with the supplied
|
|
allocator being used for allocating objects associated with the execution
|
|
context.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a new configuration parameter "timer" / "heap_reserve"
|
|
that may be used to reserve space in the vector used for a timer
|
|
queue's heap.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a new configuration parameter "resolver" / "threads"
|
|
that specifies the number of internal threads used by <code><span class="identifier">async_resolve</span></code> to emulate asynchronous
|
|
address resolution.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed <code><span class="identifier">deadline_timer</span></code>,
|
|
<code><span class="identifier">basic_deadline_timer</span></code>
|
|
and <code><span class="identifier">time_traits</span></code> from
|
|
the convenience header <tt>boost/asio.hpp</tt>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Ensured that the Windows named pipes created by <code><span class="identifier">connect_pipe</span></code>
|
|
use unique names that do not conflict if Asio is used in multiple,
|
|
independent plug-in DLLs.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed <code><span class="identifier">BOOST_ASIO_CONCURRENCY_HINT_SAFE</span></code>
|
|
to be consistent with the <code><span class="identifier">io_context</span></code>
|
|
default constructor.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the documentation for <code><span class="identifier">BOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IO</span></code>
|
|
to reflect that registration locking is still enabled.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added separate <tt>b2</tt> and <tt>cmake</tt>
|
|
build targets for optional dependencies.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="special">[[</span><span class="identifier">noreturn</span><span class="special">]]</span></code> attribute to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">throw_exception</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">co_spawn</span></code> to
|
|
adhere to the asynchronous operation requirement for non-reentrant
|
|
invocation of the completion handler.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a documentation note on <code><span class="identifier">basic_signal_set</span></code>
|
|
async signal safety.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed various minor compilation errors on different platforms.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Consult the <a href="https://www.boost.org/doc/libs/1_89_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>
|
|
Added TSAN instrumentation in asm-based x86, AArch32, AArch64 and
|
|
PPC backends. This silences TSAN false errors for code using Boost.Atomic
|
|
for thread synchronization.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Following the announcement in Boost 1.84, removed support for Windows
|
|
versions older than Windows 10.
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
A note to MinGW-w64 users. Since Windows SDK headers on MinGW-w64
|
|
define <code><span class="identifier">_WIN32_WINNT</span></code>
|
|
to an older Windows version by default, you may need to define
|
|
<code><span class="identifier">_WIN32_WINNT</span><span class="special">=</span><span class="number">0x0A00</span></code>
|
|
or <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span><span class="special">=</span><span class="number">0x0A00</span></code>
|
|
when compiling Boost.Atomic and the code that uses Boost.Atomic.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Support for Windows CE is deprecated and will be removed in a future
|
|
release.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for timed waiting operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Exposed <code><span class="identifier">thread_pause</span></code>
|
|
operation, which can be used as a backoff measure in spin loops.
|
|
Added support for PowerPC and improved support for AArch64 in <code><span class="identifier">thread_pause</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed <code><span class="identifier">BOOST_ATOMIC_NO_ATOMIC_FLAG_INIT</span></code>
|
|
macro definition. Since the library now requires C++11, <code><span class="identifier">BOOST_ATOMIC_FLAG_INIT</span></code> is always
|
|
supported.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Enabled bitwise operations for atomic enumerations. This can be useful
|
|
when enumerations are used to implement bit masks.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Conditionally defined <code><span class="identifier">immediate_executor_type</span></code>
|
|
in <code><span class="identifier">async_base</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added missing <code><span class="identifier">cstdint</span></code>
|
|
header to <code><span class="identifier">detail</span><span class="special">/</span><span class="identifier">cpu_info</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_trivial</span></code> deprecation warnings.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">handshake_timeout</span></code>
|
|
now applies to closing handshakes during reads.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Replaced <code><span class="identifier">detail</span><span class="special">/</span><span class="identifier">work_guard</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
with <code><span class="identifier">net</span><span class="special">::</span><span class="identifier">executor_work_guard</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed portability issues for building tests in MinGW.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Documentation
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Removed moved sections from documentation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed superfluous log messages from tests.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Acknowledgements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
yliu1021
|
|
</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 a performance degradation with <code><span class="identifier">from_chars</span></code>
|
|
for integer types
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed rounding and trailing decimal place bugs with <code><span class="identifier">to_chars</span></code> for specified precisions
|
|
with floating point types
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/cobalt/">Cobalt</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Move assign fixed for generator &amp; promise.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed internal exceptions
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added IO library. Cobalt.io provides a large subset of asio as a
|
|
compiled library.
|
|
</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">move_only_function</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_hash/">ContainerHash</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="identifier">hash_is_avalanching</span></code>
|
|
trait class.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added an ability to use <code><span class="identifier">polymorphic_downcast</span></code>
|
|
and <code><span class="identifier">polymorphic_cast</span></code>
|
|
in constexpr (requires C++20).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">bit_ceil</span></code> to
|
|
return 1 for input 0 as per specification. (<a href="https://github.com/boostorg/core/pull/199">PR#199</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">format</span></code>
|
|
to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">string_view</span></code>. (<a href="https://github.com/boostorg/core/issues/190">#190</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/detail/">Detail</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Operators generated by <code><span class="identifier">BOOST_BITMASK</span></code>
|
|
now use underlying type of the enum to implement bitwise operators.
|
|
The operators are marked <code><span class="keyword">noexcept</span></code>
|
|
and <code><span class="keyword">constexpr</span></code>, when
|
|
possible.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
The function <code><span class="identifier">bitmask_set</span></code>
|
|
generated by <code><span class="identifier">BOOST_BITMASK</span></code>
|
|
is marked deprecated. In a future release, <code><span class="identifier">BOOST_BITMASK</span></code>
|
|
will stop producing this function. Users are recommended to use double
|
|
negation (<code><span class="special">!!</span><span class="identifier">mask</span></code>)
|
|
to test if the value is zero. This affects e.g. enums defined in
|
|
Boost.Filesystem.
|
|
</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 compiling and exporting on Cygwin. Many thanks to <a href="https://github.com/Luohaothu">Luohao
|
|
Wang</a> for the PR!
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed building on FreeBSD. Thanks to <a href="https://github.com/agokhale">ash</a>
|
|
for the bug report!
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">BOOST_DLL_USE_STD_FS</span></code>
|
|
CMake option to match the preprocessor option. Thanks to <a href="https://github.com/yurybura">Yury
|
|
Bura</a> for the PR!
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Corrected ASAN warnings about comparing pointers to potentially unrelated
|
|
objects in <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">append</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/335">#335</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>
|
|
Major improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1369">PR#1369</a> Rewrite of traversal
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1402">PR#1402</a> Add geometry polyhedral surface
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1404">PR#1404</a> Performance improvements in buffer
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1405">PR#1405</a> Avoid static variables and functions in
|
|
header files
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Breaking changes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1401">PR#1401</a> Remove deprecated headers
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Solved issues
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1221">#1221</a> Difference with rectilinear multipolygon with
|
|
integer coordinates produces invalid polygon with disconnected
|
|
interior
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1295">#1295</a> Wrong result in intersection (result polygon
|
|
is equal to the biggest of the input polygons)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1349">#1349</a> Difference of polygons giving wrong result
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1382">#1382</a> Buffer operation creates self-intersection
|
|
</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/hash2/">Hash2</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added Blake2 algorithm (<code><span class="identifier">blake2s_256</span></code>,
|
|
<code><span class="identifier">blake2b_512</span></code>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added XXH3 algorithm (<code><span class="identifier">xxh3_128</span></code>).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">filter_iterator</span></code>
|
|
copy/converting constructor, which could previously produce an invalid
|
|
iterator. (<a href="https://github.com/boostorg/iterator/issues/92">#92</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed usage of <code><span class="identifier">is_trivial</span></code>
|
|
in <code><span class="identifier">iterator_facade</span></code>
|
|
as it is deprecated in C++26. (<a href="https://github.com/boostorg/iterator/issues/93">#93</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">iterator_facade</span><span class="special">::</span><span class="keyword">operator</span><span class="special">[]</span></code>
|
|
now always returns a proxy rather than conditionally returning a
|
|
value or a proxy. This allows users to bind a reference to the result
|
|
of the operator, regardless of whether the value type is trivially-copyable.
|
|
(<a href="https://github.com/boostorg/iterator/issues/61">#61</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
The proxy returned by <code><span class="identifier">iterator_facade</span><span class="special">::</span><span class="keyword">operator</span><span class="special">[]</span></code> now supports forwarding dereferencing
|
|
operators to the referenced value. This allows <code><span class="identifier">it</span><span class="special">[</span><span class="identifier">n</span><span class="special">]-&gt;</span><span class="identifier">foo</span><span class="special">()</span></code> and <code><span class="special">(*</span><span class="identifier">it</span><span class="special">[</span><span class="identifier">n</span><span class="special">]).</span><span class="identifier">foo</span><span class="special">()</span></code>
|
|
expressions to compile.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
The proxy returned by <code><span class="identifier">iterator_facade</span><span class="special">::</span><span class="keyword">operator</span><span class="special">[]</span></code> now implementes perfect forwarding
|
|
in its assignment operator.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Revamped documentation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Optionals that are ranges are categorised as optionals.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Described class support is enabled for types with bases.
|
|
</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 support for <code><span class="identifier">BOOST_LOG_WITHOUT_ASIO</span></code>
|
|
configuration macro, which can be used to remove the dependency on
|
|
Boost.Asio and disable the related functionality.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Use locale-independent formatting of the file counter in <code><span class="identifier">text_file_backend</span></code> when composing
|
|
log file names. This fixes failures in the subsequent parsing of
|
|
the file names in <code><span class="identifier">file_collector</span><span class="special">::</span><span class="identifier">scan_for_files</span></code>.
|
|
(<a href="https://github.com/boostorg/log/pull/246">PR#246</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a new <code><span class="identifier">wrap_filter</span></code>
|
|
utility that simplifies injecting user-defined function objects in
|
|
filtering expressions. (<a href="https://github.com/boostorg/log/issues/195">#195</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>
|
|
Add explicit C++14 <code><span class="special">&lt;</span><span class="identifier">type_traits</span><span class="special">&gt;</span></code>
|
|
and <code><span class="keyword">constexpr</span></code> requirement
|
|
to builds
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Collected fixes for GPU support on a variety of platforms
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix lower incomplete gamma function with x = 0
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix the external archive error in the jSO algorithm
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix numeric underflow in ibeta
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix inverse ibeta for large values of a and b
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix variadic functions to make them safe with C++26
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed incorrect parsing of URI paths in the list of brokers (<a href="https://github.com/boostorg/mqtt5/issues/31">#31</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Default Maximum Packet Size now explicitly set in the <code><span class="identifier">CONNECT</span></code> packet. (<a href="https://github.com/boostorg/mqtt5/issues/33">#33</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed high CPU usage with large Maximum Packet Size values (<a href="https://github.com/boostorg/mqtt5/issues/33">#33</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>
|
|
<strong>Major update.</strong>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Adds a new backend type: <code><span class="identifier">cpp_double_fp_backend</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixes a namespace collision with Boost.Serialization
|
|
</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 <code><span class="identifier">caching_sha2_password</span></code>
|
|
authentication plugin can now be used without TLS. This is the default
|
|
in MySQL 8 and above. Plaintext connections that attempt to use this
|
|
plugin no longer fail with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">auth_plugin_requires_ssl</span></code>
|
|
(<a href="https://github.com/boostorg/mysql/issues/313">#313</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a problem causing <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">incomplete_message</span></code>
|
|
to be returned during connection establishment when the target database
|
|
does not exist and the <code><span class="identifier">caching_sha2_password</span></code>
|
|
is used. The appropriate server-generated diagnostic is now returned.
|
|
See issues <a href="https://github.com/boostorg/mysql/issues/468">#468</a> and <a href="https://github.com/boostorg/mysql/issues/488">#488</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
The handshake algorithm is now more resilient to protocol violations
|
|
(<a href="https://github.com/boostorg/mysql/issues/469">#469</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a build failure with gcc-15 due to a missing include (<a href="https://github.com/boostorg/mysql/pull/475">PR#475</a>).
|
|
Thanks <a href="https://github.com/hhoffstaette">hhoffstaette</a>
|
|
for the PR.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <a href="https://www.boost.org/doc/libs/master/libs/mysql/doc/html/mysql/benchmarks.html">benchmarks
|
|
against the official drivers</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Optimized <code><span class="identifier">metadata</span></code>
|
|
representation to be faster to construct and take less memory (<a href="https://github.com/boostorg/mysql/issues/461">#461</a>).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Rewrite C++20 module following the new recommended Boost practice.
|
|
See the docs for more info.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed C++26 compilation on modern clang compilers. Thanks to <a href="https://github.com/MBkkt">Valery Mironov</a> for the report!
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Support types that use 'Arrays of Length Zero' compiler extension.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed typos. Thanks to <a href="https://github.com/TryKuhn">Egor</a>
|
|
for highlighting the issues!
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Return <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span><span class="special">,</span>
|
|
<span class="number">0</span><span class="special">&gt;</span></code>
|
|
type for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">names_as_array</span><span class="special">(</span><span class="identifier">empty_struct</span><span class="special">{})</span></code>
|
|
to allow compilation of <code><span class="keyword">for</span>
|
|
<span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span>
|
|
<span class="identifier">name</span> <span class="special">:</span>
|
|
<span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">names_as_array</span><span class="special">(</span><span class="identifier">empty_struct</span><span class="special">{}))</span></code>.
|
|
Many thanks to <a href="https://github.com/sabudilovskiy">sabudilovskiy</a>
|
|
for the bug report!
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/process/">process</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">v1</span><span class="special">.</span><span class="identifier">hpp</span></code> to emulate v1 <code><span class="identifier">process</span><span class="special">.</span><span class="identifier">hpp</span></code> include.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix to windows path escaping
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed exit-code issue wehre terminate &amp; async_wait lead to a
|
|
loss of the exit-code value.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/random/">Random</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fix NAN being generated by <code><span class="identifier">beta_distribution</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve the performance of <code><span class="identifier">beta_distribution</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code>
|
|
</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>
|
|
<strong>Initial support for C++20 Modules</strong>.
|
|
See the docs for more info.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Deprecated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered</span><span class="special">::</span><span class="identifier">hash_is_avalanching</span></code>
|
|
is now a using-declaration of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_is_avalanching</span></code>
|
|
in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container_hash</span><span class="special">/</span><span class="identifier">hash_is_avalanching</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. Use that header directly instead.
|
|
<code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">unordered</span><span class="special">/</span><span class="identifier">hash_traits</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> will be removed in the future.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">pull</span><span class="special">(</span><span class="identifier">const_iterator</span><span class="special">)</span></code>
|
|
to open-addressing containers. This operation allows for efficient
|
|
removal and retrieval of an element via move construction.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Update CMake minimum version and Python detection in CMake
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve documentation
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Add example on how to make an axis which accepts multiple value
|
|
types that are not implicitly convertible
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Show how to use <code><span class="identifier">histogram</span><span class="special">::</span><span class="identifier">fill</span></code>
|
|
with a multidimensional histogram efficiently when data per
|
|
dimension is already available as contiguous data
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Don't use deprecated form of user-defined literal operator
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for modular build structure with b2
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed warnings in MSVC about narrowed types
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added collector accumulator, which stores all values in a bin
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Internal changes to tests and classes in detail namespace
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_89_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_3_2">B2
|
|
version 5.3.2</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_89_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_89_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.88.0</title><link>https://www.boost.org/users/history/version_1_88_0.html</link><guid>https://www.boost.org/users/history/version_1_88_0.html</guid><pubDate>Thu, 10 Apr 2025 20:39:01 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_88_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework,
|
|
from Peter Dimov and Christian Mazakas.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built
|
|
on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina
|
|
Šimičević.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_88_0.updated_libraries">
|
|
<h3><span class="link">Updated Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Converted documentation to AsciiDoc (Christian Mazakas).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="keyword">noexcept</span></code> and
|
|
<code><span class="keyword">constexpr</span></code> as appropriate.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Marked obsolete functions as deprecated.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed obsolete compiler workarounds.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;::</span><span class="identifier">begin</span><span class="special">()</span></code>,
|
|
<code><span class="identifier">cbegin</span><span class="special">()</span></code>,
|
|
<code><span class="identifier">end</span><span class="special">()</span></code>,
|
|
<code><span class="identifier">cend</span><span class="special">()</span></code>
|
|
to return <code><span class="keyword">nullptr</span></code>, enabling
|
|
<code><span class="keyword">constexpr</span></code>. This matches
|
|
the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed local <code><span class="identifier">hash_value</span></code>
|
|
overload; <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> supports array-like types
|
|
natively.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;</span></code>
|
|
can now be initialized with <code><span class="special">=</span>
|
|
<span class="special">{{}}</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="keyword">operator</span><span class="special">&lt;=&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">to_array</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="keyword">noexcept</span></code> qualifiers
|
|
to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>
|
|
member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer
|
|
values.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed an incorrect default template argument in the implementation
|
|
of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the <code><span class="identifier">io_uring</span></code>
|
|
implementation so that it does not attempt to re-register internal
|
|
descriptors with the reactor after a fork, if they were not previously
|
|
registered.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code>
|
|
default constructor.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code>
|
|
function.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed some spurious macro definitions that were left after the
|
|
removal of deprecated buffer functionality.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code>
|
|
when opening a file.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added overview documentation on the available runtime configuration
|
|
options.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion
|
|
token.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated the <code><span class="identifier">async_result</span></code>
|
|
documentation to reflect the current type requirements placed on
|
|
specialisations of the trait.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
When <code><span class="identifier">BOOST_ASSERT_HANDLER_IS_NORETURN</span></code>
|
|
is defined, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed</span></code>
|
|
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed_msg</span></code> are declared
|
|
as <code><span class="identifier">BOOST_NORETURN</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>
|
|
Fixes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed out-of-bounds access in <code><span class="identifier">iequals</span></code>
|
|
function.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Updated SSL examples to verify peer certificate hostname.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Refactored CMakeLists.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed Boost.Scope dependency from examples.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Peer pings in WebSocket now count as activity.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Documentation
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added new examples for Unix domain sockets.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added SSL/TLS Certificate section to documentation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved documentation of <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_close</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Acknowledgements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Morten M. Neergaard
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Use modern C++ in the samples and in the library 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>
|
|
Added constructor from <code><span class="identifier">native_handle_t</span></code>
|
|
to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code>. Many thanks to
|
|
<a href="https://github.com/tgmatos">Tiago Matos</a> for the
|
|
<a href="https://github.com/boostorg/dll/pull/82">PR#82</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped multiple dependencies on other Boost libraries including
|
|
Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more
|
|
lightweight for compilation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code>
|
|
in API is used instead of the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code>. This is not a breaking change
|
|
as <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code> is convertible to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">:</span><span class="identifier">import_</span><span class="special">*</span></code>
|
|
functions now return <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>
|
|
rather than <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>.
|
|
Define <code><span class="identifier">BOOST_DLL_USE_BOOST_SHARED_PTR</span></code>
|
|
to restore the old behavior, however note that the macro will be
|
|
removed in one of the upcomming Boost releases.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Use modern C++ in the samples and in the library code.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code> now always throws
|
|
in case of a broken binary. Updated the docs and added some tests.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Documented in FAQ why <code><span class="identifier">RTLD_NODELETE</span></code>
|
|
is missing and why there is no <code><span class="special">.</span><span class="identifier">release</span><span class="special">()</span></code>
|
|
method. Provided suggestions on possible workarounds.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated the information on building and using the library. CMake
|
|
targets now link with <code><span class="special">-</span><span class="identifier">ldl</span></code> if it is required by the platform.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">path_from_handle</span></code> implementation
|
|
for long paths on Windows OS.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Highlighted in the docs that <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library are experimental
|
|
and incomplete.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed multiple mangling issues in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library.
|
|
</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/1370">PR#1370</a> Relax half period check in spheroidal normalization
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial
|
|
predicates
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with
|
|
integer coordinates
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Several test cases has been added
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Use using instead of typedef in part of the code
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Solved issues
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix
|
|
compilation error and warning)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and
|
|
unused parameters
|
|
</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/geometry/">Graph</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Bug fixes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>,
|
|
resolves multiple issues.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Ensure <code><span class="identifier">named_graph</span></code>
|
|
is initialized before use.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code>
|
|
with Boost.Geometry, fixes incorrect results for very small
|
|
angles.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code>
|
|
in <code><span class="identifier">undirected_dfs</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Performance improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">adjacency_list</span></code>:
|
|
Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick
|
|
benchmark indicates a 10% improvement to graph construction
|
|
time.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>:
|
|
Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code>
|
|
with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40%
|
|
improvement for large graphs.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
General Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Replace the use of several Boost utilities with C++14 language
|
|
features.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Modernize examples with C++14 language features.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Various fixes to documentation and build system.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">vertex_by_property</span></code>
|
|
no longer requires a mutable graph.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code>
|
|
and Clang 19.
|
|
</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>
|
|
Dropped support for C++03 and ancient compilers, updated code base
|
|
to use C++11 and MP11, reduced usage of MPL. (<a href="https://github.com/boostorg/iterator/pull/82">PR#82</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">min_category</span></code>
|
|
trait, which is a variadic equivalent of <code><span class="identifier">minimum_category</span></code>
|
|
that doesn't depend on MPL. <code><span class="identifier">minimum_category</span></code>
|
|
is deprecated and will be removed in a future release.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Extracted <code><span class="identifier">enable_if_convertible</span></code>
|
|
trait to a separate header <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
|
The trait was previously defined in <code><span class="identifier">iterator_adaptor</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
|
and the header still provides <code><span class="identifier">enable_if_convertible</span></code>
|
|
when included. This dependency is provided for backward compatibility
|
|
and will be removed in a future release. Users are advised to add
|
|
includes of <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
|
as needed.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="special">*</span><span class="identifier">_t</span></code>
|
|
variants of various iterator traits that produce types.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">filter_iterator</span></code> and
|
|
<code><span class="identifier">transform_iterator</span></code>
|
|
now use empty base optimization (EBO) to reduce size of the iterator
|
|
when the adopted function object is stateless.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">zip_iterator</span></code> now
|
|
natively supports <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>,
|
|
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>
|
|
for iterator tuples and doesn't need including Fusion support headers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">function_output_iterator</span></code>
|
|
no longer allows default construction when the wrapped function is
|
|
a function pointer. Such construction would previously create an
|
|
iterator with an uninitialized function pointer value, and such an
|
|
iterator would be unusable.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">generator_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
and <code><span class="identifier">shared_container_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
headers were moved under the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span></code>
|
|
directory. The previous headers in <code><span class="identifier">boost</span></code>
|
|
are still retained for backward compatibility, but will be removed
|
|
in a future release. Users are advised to update their includes.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">shared_container_iterator</span></code>
|
|
now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> to reference the container
|
|
internally. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>
|
|
is still retained, but it will incur performance overhead on the
|
|
iterator construction, as <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>
|
|
is now wrapped in a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>
|
|
internally. It is recommended to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>
|
|
to reference the container.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Raised required ICU version to at least 4.8.1
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped support for ICU 50.1
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed parsing of integers with input strings in floating point format
|
|
(<a href="https://github.com/boostorg/locale/pull/241">PR#241</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Support parsing and formatting of <code><span class="identifier">uint64_t</span></code>
|
|
values with the ICU backend (<a href="https://github.com/boostorg/locale/pull/246">PR#246</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Support <code><span class="identifier">char8_t</span></code> on
|
|
more platforms
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added new spsc_value, a lockfree single-producer single-consumer
|
|
value based on a triple-buffer
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Disabled usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char16_t</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char32_t</span><span class="special">&gt;</span></code> locale facets in C++20 and later
|
|
modes as they were deprecated in C++20. This means character code
|
|
conversions to/from <code><span class="keyword">char16_t</span></code>
|
|
and <code><span class="keyword">char32_t</span></code> is no longer
|
|
available in C++20 and later.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code>
|
|
when the backend was configured to append to an existing file and
|
|
the actively written file name pattern didn't have a counter placeholder
|
|
but the target file name pattern did, and the log files were written
|
|
directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</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>
|
|
Fixed <code><span class="identifier">mp_from_sequence</span></code>
|
|
for non-integral values (accidentally broken in 1.83.0 due to offset
|
|
support)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">connection_pool</span></code> now
|
|
resizes correctly even in the presence of many connections with session
|
|
establishment in-progress. The old algorithm could lead to the pool
|
|
not being resized as expected under certain conditions (<a href="https://github.com/boostorg/mysql/issues/395">#395</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">any_connection</span><span class="special">::</span><span class="identifier">connection_id</span></code>.
|
|
This function retrieves the connection's ID, which can subsequently
|
|
be used in <code><span class="identifier">KILL</span></code> SQL
|
|
statements to cancel queries. This function is equivalent to <code><span class="identifier">mysql_thread_id</span></code> in the official
|
|
C API (<a href="https://github.com/boostorg/mysql/issues/408">#408</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Attempting to start an async operation on a <code><span class="identifier">connection</span></code>
|
|
or <code><span class="identifier">any_connection</span></code>
|
|
while another operation is in-progress no longer triggers undefined
|
|
behavior. It now fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">operation_in_progress</span></code>
|
|
(<a href="https://github.com/boostorg/mysql/issues/405">#405</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Attempting to start an operation while a <code><span class="identifier">connection</span></code>
|
|
or <code><span class="identifier">any_connection</span></code>
|
|
are engaged in a multi-function operation no longer yields potentially
|
|
dangerous packet mismatches. It instead fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">engaged_in_multi_function</span></code> (<a href="https://github.com/boostorg/mysql/issues/448">#448</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved diagnostics when attempting to use a connection without
|
|
a established session. Operations now fail with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">not_connected</span></code>
|
|
(<a href="https://github.com/boostorg/mysql/issues/450">#450</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a race condition in <code><span class="identifier">connection</span></code>
|
|
and <code><span class="identifier">any_connection</span></code>
|
|
regarding per-operation cancellation. In previous versions, if a
|
|
cancellation signal was emitted after an intermediate async operation
|
|
had completed, but before its handler had been called, the signal
|
|
was ignored. This is no longer the case (<a href="https://github.com/boostorg/mysql/issues/199">#199</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">field</span></code>'s constructor
|
|
and assignment from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
|
are now available in C++17, rather than C++20. These functions were
|
|
guarded by standard feature-test macros, only available in C++20.
|
|
These have been replaced by their Boost.Config equivalents.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added an HTTP server example that uses C++20 coroutines.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a doc page on interfacing sync and async code. This replaces
|
|
the synchronous connection pool snippet, which contained a race condition.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved some of the other examples and doc pages.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Make <code><span class="identifier">getenv</span></code> thread-safe
|
|
(<a href="https://github.com/boostorg/nowide/pull/191">PR#191</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant_collection</span></code>, a closed polymorphic
|
|
collection similar in behavior to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;...&gt;&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fix <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>
|
|
for wide streams (accidentally broken in 1.87.0)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Use <code><span class="identifier">GetModuleNames</span></code>
|
|
to determine the full module path for MSVC implementation. Many thanks
|
|
to <a href="https://github.com/Dani-Hub">Daniel Krügler</a>
|
|
for the <a href="https://github.com/boostorg/stacktrace/pull/198">PR#198</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Print relative addresses to allow their decoding later without knowing
|
|
the base address. The logic could be disabled by defining <code><span class="identifier">BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE</span></code>.
|
|
Many thanks to <a href="https://github.com/McCzarny">Maciej Czarnecki</a>
|
|
for the <a href="https://github.com/boostorg/stacktrace/pull/200">PR#200</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Expose all the stacktrace libraries as b2 features for better control
|
|
over the build and explicit information on what libraries are built.
|
|
See "Configuration and Build" section for more info. Many
|
|
thanks to <a href="https://github.com/uilianries">Uilian Ries</a>
|
|
for initial implementation of the feature in <a href="https://github.com/boostorg/stacktrace/pull/202">PR#202</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">stacktrace_from_exception</span></code>
|
|
builds with MinGW. Thanks to <a href="https://github.com/crhilton">crhilton</a>
|
|
for the fix.
|
|
</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>
|
|
Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented
|
|
the library from building on clang-20.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Migrated the documentation to a multipage format using Antora.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Use the smallest appropriate unsigned type for the index.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_88_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_88_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.87.0</title><link>https://www.boost.org/users/history/version_1_87_0.html</link><guid>https://www.boost.org/users/history/version_1_87_0.html</guid><pubDate>Thu, 12 Dec 2024 00:52:33 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_87_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/parser/">Parser</a>:</span> Framework for building
|
|
parsers, from Zach Laine.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_87_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>
|
|
Added support for using byte spans and sequences of byte spans as
|
|
buffer sequences. This means that they can be passed directly to
|
|
I/O operations such as <code><span class="identifier">async_read</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for generic dispositions, which are types that can
|
|
be used to test whether an asynchronous operation completed without
|
|
error. This includes <code><span class="identifier">error_code</span></code>
|
|
and <code><span class="identifier">exception_ptr</span></code>,
|
|
but can be extended to user types via specialisation of the <code><span class="identifier">disposition_traits</span></code> class template.
|
|
The standard types <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>
|
|
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code> are recognised as
|
|
dispositions.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added disposition support to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">use_future</span></code>
|
|
completion token, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>-based coroutines, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">spawn</span><span class="special">()</span></code>,
|
|
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">cancellation_condition</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="identifier">execution_context</span><span class="special">::</span><span class="identifier">service_maker</span></code>
|
|
abstract base class. A <code><span class="identifier">service_maker</span></code>
|
|
is an object that is passed to an execution context's constructor,
|
|
and allows services to be added at context construction time.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code>, which provides access to
|
|
configuration parameters that are associated with an execution context.
|
|
The class is intended for use by asio internals, or by libraries
|
|
or user-provided abstractions that build on top of asio, and will
|
|
typically be used to fine tune behaviour, such as enabling or disabling
|
|
certain optimisations. A concrete configuration source, such as
|
|
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config_from_env</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config_from_concurrency_hint</span></code> and
|
|
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config_from_string</span></code>, may be passed
|
|
to the <code><span class="identifier">io_context</span></code>
|
|
or <code><span class="identifier">thread_pool</span></code> constructor.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added an initial set of configuration parameters recognised by Asio's
|
|
<code><span class="identifier">io_context</span></code> and <code><span class="identifier">thread_pool</span></code> implementations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed some previously deprecated facilities.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Deprecated <code><span class="identifier">basic_io_object</span></code>
|
|
and <code><span class="identifier">deadline_timer</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added rvalue-qualified <code><span class="keyword">operator</span><span class="special">()</span></code> overloads to associating binders.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for modular build structure.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">spawn</span><span class="special">()</span></code>
|
|
of functions that return move-only types.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">co_composed</span></code>
|
|
to not require concepts support.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the epoll reactor to not try to re-register regular file descriptors
|
|
after fork.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a leak in <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">engine</span></code>
|
|
move assignment.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compile error when <code><span class="identifier">BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING</span></code>
|
|
is defined.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compile error when using Clang 19.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed <code><span class="identifier">thread_pool</span><span class="special">::</span><span class="identifier">join</span><span class="special">()</span></code> to ensure that it stops threads
|
|
that are subsequently added to the pool using <code><span class="identifier">thread_pool</span><span class="special">::</span><span class="identifier">attach</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the offsets passed to <code><span class="identifier">io_uring_prep_write_fixed</span></code>
|
|
and <code><span class="identifier">io_uring_prep_read_fixed</span></code>,
|
|
when they are used for stream-oriented operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Consult the <a href="https://www.boost.org/doc/libs/1_87_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>
|
|
Fixed initialization of atomic wait state list on memory reallocation.
|
|
(<a href="https://github.com/boostorg/atomic/issues/72">#72</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>
|
|
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/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/libs/cobalt">Cobalt</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Removed requirement for get_executor to return a const ref
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added experimental/composition.
|
|
</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">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/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/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/libs/flyweight/index.html">Flyweight</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <a href="https://www.boost.org/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/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/libs/geometry/">Geometry</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Use using instead of typedef in part of the code
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Modernize meta function with alias in part of the code
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for modular build structure
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Complete CMake coverage (added github actions cmake tests)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve documentation workflow
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Update Qt end WxWidgets examples
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add enumerate to prepare for 17 and 23
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Breaking changes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Remove deprecated rescaling code
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Solved issues
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1309">#1309</a> Fix some missing qbk includes
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1226">#1226</a> <a href="https://github.com/boostorg/geometry/issues/1326">#1326</a> Fix extra round on ring
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1293">#1293</a> <a href="https://github.com/boostorg/geometry/issues/1294">#1294</a> <a href="https://github.com/boostorg/geometry/issues/1295">#1295</a> Fix traversal
|
|
through non clustered rings
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/893">#893</a> <a href="https://github.com/boostorg/geometry/issues/1299">#1299</a> Fix blocking rings for non
|
|
union conditions
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1342">#1342</a> Fix discarding a start turn for combination
|
|
with touch
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1288">#1288</a> <a href="https://github.com/boostorg/geometry/issues/1345">#1345</a> Fixes in handling (imperfect)
|
|
touch
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/1279">#1279</a> Fix covered_by incorrect results
|
|
</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>
|
|
<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/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/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/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/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/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/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/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/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/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/libs/optional/">Optional</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<strong>Breaking change.</strong> Dropped support
|
|
for C++03. C++11 is now the required minimum; at least some C++11
|
|
features.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped dependency on Boost.Utility.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped dependency on Boost.Predef.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped dependency on Boost.StaticAssert.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped dependency on Boost.Move.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
A bit faster implementation of some relational operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>Warning.</strong> In the future releases
|
|
we intend to introduce the range interface into <code><span class="identifier">optional</span></code>,
|
|
so that <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">ranges</span><span class="special">::</span><span class="identifier">range</span><span class="special">&lt;</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&gt;</span></code>
|
|
will be <code><span class="keyword">true</span></code>. This may
|
|
affect the overload resolution in programs that make decisions based
|
|
on predicates such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">ranges</span><span class="special">::</span><span class="identifier">range</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Tags <code><span class="identifier">in_place_init</span></code>
|
|
and <code><span class="identifier">in_place_init_if</span></code>
|
|
become <code><span class="keyword">inline</span> <span class="keyword">constexpr</span></code>
|
|
and therewith leave smaller footprint in the executable. This addresses
|
|
<a href="https://github.com/boostorg/optional/issues/103">issue
|
|
#103</a>.
|
|
</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">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/libs/process">Process</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
(v2) Implemented cancellation of async_wait on windows.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v2) Added FORCE_DISABLE_CLOSE_RANGE
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v2) ext: Multiple ext fixes for BSD &amp; Solaris.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v2) unavailable <code><span class="identifier">ext</span></code>
|
|
functions now compile and give an <code><span class="identifier">operation_not_supported</span></code>
|
|
error (includes IOS)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v2) multiple link fixes
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v2) removed filesystem from the linked library - which filsystem
|
|
library is used only affects header files now
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
(v1) Added deprecation notice for 1.88.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/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/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
|
|
mian</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>
|
|
<li>
|
|
<div>
|
|
Fixed setting B2 <code><span class="identifier">from_exception</span></code>
|
|
feature from CLI. Thanks to <a href="https://github.com/grisumbras">Dmitry
|
|
Arkhipov</a> for the <a href="https://github.com/boostorg/stacktrace/pull/194">PR#194</a>.
|
|
</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>
|
|
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/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/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/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/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/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_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_87_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>
|
|
</channel>
|
|
</rss>
|