mirror of
https://github.com/boostorg/website.git
synced 2026-01-25 06:42:29 +00:00
5599 lines
278 KiB
XML
5599 lines
278 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
||
<rss version="2.0" xmlns:boostbook="urn:boost-org:boostbook" xmlns:atom="http://www.w3.org/2005/Atom">
|
||
<channel>
|
||
<generator>Boost Website Site Tools</generator>
|
||
<title>Release notes for work in progress boost</title>
|
||
<link>https://www.boost.org/</link>
|
||
<atom:link href="https://www.boost.org/generated/dev.rss" rel="self" type="application/rss+xml" />
|
||
<description></description>
|
||
<language>en-us</language>
|
||
<copyright>Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)</copyright>
|
||
<item><title>Version 1.85.0</title><link>https://www.boost.org/users/history/version_1_85_0.html</link><guid>https://www.boost.org/users/history/version_1_85_0.html</guid><pubDate>Wed, 13 Mar 2024 17:03:47 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_85_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/charconv/">Charconv</a>:</span> A high quality implementation
|
||
of <code><span class="special">&lt;</span><span class="identifier">charconv</span><span class="special">&gt;</span></code> in C++11, from Matt Borland.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/scope/">Scope</a>:</span> A collection of scope guard
|
||
utilities and a <code><span class="identifier">unique_resource</span></code>
|
||
wrapper, from Andrey Semashev.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/bind/">Bind</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported; a C++11 compiler is required. (This
|
||
includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed outdated mentions of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span></code>
|
||
that is not part of the library any more. Thanks to <a href="https://github.com/eoan-ermine">Danil
|
||
Sidoruk</a> for the PR <a href="https://github.com/boostorg/conversion/pull/28">PR#28</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/function/">Function</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported; a C++11 compiler is required. (This
|
||
includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/leaf/">LEAF</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New API for transporting of error objects and exceptions between
|
||
threads: <code><span class="identifier">try_capture_all</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
able to transport exceptions captured via <code><span class="identifier">try_capture_all</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
transporting dynamically captured error objects with improved efficiency.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Old <code><span class="identifier">make_shared_context</span></code>/<code><span class="identifier">capture</span></code> APIs are deprecated, will
|
||
be removed in the next release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed support for transporting of dynamicaly captured error objects
|
||
in exceptions.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Significant rewrite of the internal logic to separate optimized and
|
||
C++ Standard Library IO-based streams:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++ Standard Library based streams now constructed in less
|
||
cases leading to <strong>better performance</strong>;
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
less template instantiations and simpler code;
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
always use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span></code>
|
||
(do not use custom traits from input/output types as it leads
|
||
to linktime or runtime errors);
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
fixed missuse of forward declared boost::array (thanks to
|
||
<a href="https://github.com/13steinj">13steinj</a> for
|
||
the report <a href="https://github.com/boostorg/lexical_cast/issues/64">#64</a>!);
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
support for <code><span class="keyword">volatile</span></code>
|
||
input types was dropped, following the C++ Standard Library
|
||
trend.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized conversions from std::basic_string_view and boost::basic_string_view
|
||
<a href="https://github.com/boostorg/lexical_cast/issues/30">#30</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.NumericConversion and Boost.MPL. Fixed
|
||
some cases of converting floting point types to arithmetics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library now compiles and works fine with <code><span class="special">-</span><span class="identifier">fno</span><span class="special">-</span><span class="identifier">sanitize</span><span class="special">-</span><span class="identifier">recover</span><span class="special">=</span><span class="identifier">integer</span></code> <a href="https://github.com/boostorg/lexical_cast/issues/45">#45</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix linker issues due to missing typeinfo for <code><span class="identifier">char8_t</span></code>
|
||
in C++20 mode
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix IConv compile flags when using ICU that has a bundled IConv
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">collator</span></code> now throws
|
||
on construction, if at all, as documented
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">collator</span></code> no longer
|
||
derives from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">collator</span></code>
|
||
to avoid possible type confusing when it isn't available for the
|
||
current backend <a href="https://github.com/boostorg/locale/pull/216">PR#216</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Throw an exception when a faulty IConv library is detected (e.g.
|
||
on some MacOS versions) instead of looping indefinitely <a href="https://github.com/boostorg/locale/pull/218">PR#218</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduce resolution of <code><span class="identifier">date_time</span></code>
|
||
to seconds as milliseconds where not easily available causing confusion
|
||
<a href="https://github.com/boostorg/locale/issues/221">#221</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/msm/">MSM</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major Update</strong>. Backend update (back11).
|
||
Requires C++ 11. The documentation now uses it as default.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature</strong>. New front-end (PlantUML).
|
||
Requires C++ 20
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various Bugfixes (compiler errors and warnings, priority of deferred
|
||
events)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking change</strong>: Boost.MySQL now
|
||
requires linking to the new <strong>Boost.Charconv</strong>
|
||
compiled library. This addresses a locale-dependency problem, increases
|
||
efficiency, and powers the new client-side SQL formatting feature.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>connection pools</strong>,
|
||
which allows re-using sessions and provides built-in reconnection
|
||
and error handling.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>type-erased
|
||
connections</strong> (<code><span class="identifier">any_connection</span></code>
|
||
class). <code><span class="identifier">any_connection</span></code>
|
||
is not a template and features simpler connection establishment and
|
||
reconnection semantics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for <strong>client-side
|
||
SQL formatting functions</strong> (<code><span class="identifier">format_sql</span></code>
|
||
and <code><span class="identifier">format_sql_to</span></code>).
|
||
These allow securely composing queries client-side, which enables
|
||
patterns like batch inserts, dynamic filters or PATCH-like updates.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a performance issue affecting <code><span class="identifier">close_statement</span></code>
|
||
and <code><span class="identifier">async_close_statement</span></code>
|
||
that could cause significant delays in application code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for building with <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The deprecated execution interface (<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code> and their
|
||
async counterparts) now triggers warnings, as it's scheduled for
|
||
removal in Boost 1.86.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a bug that caused some error messages to be truncated.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Warning cleanup. Builds are now clean from warnings when building
|
||
with <code><span class="special">-</span><span class="identifier">Wall</span></code>
|
||
and <code><span class="special">-</span><span class="identifier">Wextra</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All <code><span class="identifier">field_view</span></code> constructors
|
||
are now stable.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library internals have been rewritten using a sans-io approach
|
||
to reduce complexity.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get_name</span></code> now can work with local
|
||
types on some compilers. Thanks to <a href="https://github.com/schaumb">Bela
|
||
Schaum</a> for the PR <a href="https://github.com/boostorg/pfr/pull/152">PR#152</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed unused implementation details. Thanks to <a href="https://github.com/denzor200">Denis
|
||
Mikhailov</a> for the PR <a href="https://github.com/boostorg/pfr/pull/154">PR#154</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow throwing exceptions from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">structure_to_tuple</span></code>.
|
||
Thanks to <a href="https://github.com/denzor200">Denis Mikhailov</a>
|
||
for the bug report <a href="https://github.com/boostorg/pfr/issues/155">#155</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Field reflection trick is now described in the docs. Thanks to all
|
||
the discussion participans in <a href="https://github.com/boostorg/pfr/issues/150">#150</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported; a C++11 compiler is required. (This
|
||
includes GCC 4.8 or later, and MSVC 14.0 (VS 2015) or later.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The deprecated header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">cygwin_error</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
has been removed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The original and obsolete (32 bit) MinGW is no longer supported.
|
||
MinGW-w64 (both 64 and 32 bit) is still supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="keyword">operator</span><span class="special">&amp;</span></code>
|
||
now works for <code><span class="identifier">result</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> (by way of taking a nullary function.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">|=</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature: stacktrace from arbitrary
|
||
exception</strong>. On some POSIX platforms <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">stacktrace</span><span class="special">::</span><span class="identifier">from_current_exception</span><span class="special">()</span></code> now returns the stacktrace of the
|
||
current exception object as if the stacktrace was captures at the
|
||
point of throwing the exception. Many thanks to Andrei Nekrashevich
|
||
for prototyping the idea in <code><span class="identifier">libsfe</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed memory consumption on Windows with <code><span class="identifier">boost_stacktrace_windbg</span></code>.
|
||
Thanks to <a href="https://github.com/ycyclop">ycyclop</a>
|
||
for reporting the issue <a href="https://github.com/boostorg/stacktrace/issues/111">#111</a>, to <a href="https://github.com/correa">Thiago
|
||
A. Correa</a> for providing more information, to <a href="https://github.com/akarpovskii">Andrei
|
||
Karpovskii</a> for providing a possible fix.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed lbrary build with non hidden visibility. Thanks to <a href="https://github.com/JBouwer">Jan
|
||
Bouwer</a> for the report and information on how to fix it.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/stl_interfaces/">STLInterfaces</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change the behavior of <code><span class="identifier">iterator_interface</span></code>
|
||
for input iterators in C++20 and later, to more closely follow the
|
||
C++20 concepts.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove hidden friends from <code><span class="identifier">iterator_interface</span></code>
|
||
to fix errors about concepts being redefined with different constraints.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add a new <code><span class="identifier">v3</span></code> inline
|
||
namespace, containing a new iterator_interface based on deducing
|
||
this instead of CRTP (C++23 and later).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add an rvalue-qualified overload of <code><span class="identifier">closure</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code>, to prevent dangling temporaries.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for a <code><span class="identifier">value_type</span></code>
|
||
or <code><span class="identifier">init_type</span></code> (if
|
||
applicable) argument to bypass creating an intermediate object. The
|
||
argument is already the same type as the would-be intermediate object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for <code><span class="identifier">k</span><span class="special">,</span><span class="identifier">v</span></code>
|
||
arguments on map containers to delay constructing the object until
|
||
it is certain that an element should be inserted. This optimization
|
||
happens when the map’s <code><span class="identifier">key_type</span></code>
|
||
is move constructible or when the <code><span class="identifier">k</span></code>
|
||
argument is a <code><span class="identifier">key_type</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed support for allocators with explicit copy constructors (<a href="https://github.com/boostorg/unordered/pull/234">PR#234</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/doc/libs/1_85_0_beta1/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed more of the pre-C++11 macro and workarounds.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
|
||
15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
|
||
14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
|
||
13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_85_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.84.0</title><link>https://www.boost.org/users/history/version_1_84_0.html</link><guid>https://www.boost.org/users/history/version_1_84_0.html</guid><pubDate>Wed, 13 Dec 2023 23:54:29 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_84_0.updated_default_target_windows_v">
|
||
<h3><span class="link">Updated
|
||
default target Windows version</span></h3>
|
||
<p>
|
||
Boost.WinAPI, a library that is used internally by other Boost libraries for
|
||
defining Windows SDK components, has been updated to target Windows 10 API
|
||
by default, where possible. This means that Boost libraries will target Windows
|
||
10 by default and may not run on older Windows versions. This includes the
|
||
pre-built binaries that are distributed by Boost.
|
||
</p>
|
||
<p>
|
||
The affected libraries include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Atomic
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Beast
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Chrono
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.DateTime
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.DLL
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Filesystem
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Interprocess
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Log
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Pool
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Process
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.System
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Stacktrace
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Thread
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.UUID
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
as well as libraries that depend on the above.
|
||
</p>
|
||
<p>
|
||
Users are able to change the default by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>
|
||
or <code><span class="identifier">_WIN32_WINNT</span></code> when building
|
||
and using Boost to the required version number. For example, to build Boost
|
||
targeting Windows 7 one could use a command line like this:
|
||
</p>
|
||
<pre> b2 variant=release define=BOOST_USE_WINAPI_VERSION=0x0601 stage
|
||
</pre>
|
||
<p>
|
||
Note, however, that individual libraries may have their own requirements on
|
||
the minimum supported Windows version.
|
||
</p>
|
||
<p>
|
||
The list of Windows API version numbers can be seen on <a href="https://msdn.microsoft.com/en-us/library/6sehtctf.aspx">this</a>
|
||
page.
|
||
</p>
|
||
</div>
|
||
<div id="version_1_84_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/cobalt/">Cobalt</a>:</span> Basic algorithms and types
|
||
for C++20 coroutines, from Klemens Morgenstern.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/redis/">Redis</a>:</span> Redis async client library
|
||
built on top of Boost.Asio, from Marcelo Zimbres Silva.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/any/pull/26">PR#26</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed reference documentation generation. Now it is not overwritten
|
||
by Boost.PFR reference. Thanks to Peter Dimov for the debugging.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Changed to require C++11 as the minimum language standard. C++03
|
||
is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed deprecated functionality from the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">execution</span></code>
|
||
namespace.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed deprecated invocation and allocation hooks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">try_send_via_dispatch</span></code>
|
||
and <code><span class="identifier">try_send_n_via_dispatch</span></code>
|
||
functions to channels.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added compatibility between Asio's placeholders and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved C++11 support for channels that have multiple completion
|
||
signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility between channel asynchronous operations and
|
||
<code><span class="identifier">any_completion_handler</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility between <code><span class="identifier">any_completion_handler</span></code>
|
||
and compilation using <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing equality operators for comparing mixed executor property
|
||
types belonging to the same category.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an issue where <code><span class="identifier">spawn</span></code>-based
|
||
stackful coroutines would terminate the program when used with asynchronous
|
||
operations that have a completion signature starting with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a crash that may occur when attempting to access a default-constructed
|
||
<code><span class="identifier">any_completion_handler</span></code>
|
||
object's associators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>
|
||
class's <code><span class="identifier">async_handshake</span></code>
|
||
operation so that it works with a defaulted completion token.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated all examples to use C++11 as the minimum language standard.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported, the minimum required language version
|
||
is C++11.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for x87 extended double with reduced precision, which
|
||
is used on FreeBSD and OpenBSD. (<a href="https://github.com/boostorg/atomic/issues/14">#14</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for Windows versions older than Windows 10 is deprecated
|
||
and will be removed in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">immediate_executor</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove deprecated allocation and invocation hooks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use the explicit type std::size_t when completing transfer_op.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced <code><span class="identifier">BOOST_ASIO_INITFN_RESULT_TYPE</span></code>
|
||
with <code><span class="identifier">BOOST_ASIO_INITFN_AUTO_RES</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">server</span><span class="special">-</span><span class="identifier">flex</span><span class="special">-</span><span class="identifier">awaitable</span></code> example resets parser.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Corrected the <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_ping</span><span class="special">/</span><span class="identifier">pong</span></code>
|
||
handler requirement.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update documentation for <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_write_some</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/container_hash/">ContainerHash</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/conversion/pull/27">PR#27</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> utility function has been
|
||
renamed to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">invoke_swap</span></code>
|
||
to avoid forming a potential infinite recursion when the arguments
|
||
are not swappable. The new function is defined in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">invoke_swap</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and is functionally equivalent to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code>.
|
||
The old <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> name is preserved for backward
|
||
compatibility but deprecated and will be removed in a future release.
|
||
Its <code><span class="keyword">noexcept</span></code> specification
|
||
has been removed to avoid compile errors caused by compile-time recursion.
|
||
<code><span class="identifier">BOOST_ALLOW_DEPRECATED_SYMBOLS</span></code>
|
||
or <code><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
|
||
can be defined to suppress deprecation warnings for the transition
|
||
period. (<a href="https://github.com/boostorg/core/issues/148">#148</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Headers <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">swap</span><span class="special">.</span><span class="identifier">hpp</span></code> are deprecated and will be
|
||
removed. Please, switch to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">invoke_swap</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
<code><span class="identifier">BOOST_ALLOW_DEPRECATED_HEADERS</span></code>
|
||
or <code><span class="identifier">BOOST_ALLOW_DEPRECATED</span></code>
|
||
can be defined to suppress deprecation warnings.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/crc/">CRC</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/dll/pull/66">PR#66</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
As was announced in Boost 1.82.0, C++03 is no longer supported. A
|
||
C++11 or later compiler is required.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that some <code><span class="identifier">directory_entry</span></code>
|
||
observers taking <code><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span></code>
|
||
argument did not clear the error code on successful return. (<a href="https://github.com/boostorg/filesystem/issues/291">#291</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, improved robustness of date and time conversion and added
|
||
support for dates before January 1, 1970. (<a href="https://github.com/boostorg/filesystem/issues/293">#293</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed support for Windows CE that was deprecated since Boost.Filesystem
|
||
1.79.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">string_file</span><span class="special">.</span><span class="identifier">hpp</span></code> header. The header was deprecated
|
||
since Boost.Filesystem 1.79.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> Support for Windows
|
||
versions older than Windows 10 is deprecated and will be removed
|
||
in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1138">#1138</a> Fix difference of two polygons
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1183">#1183</a> Fix for union_ incomplete result polygon
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1184">#1184</a> Fix for intersection
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1186">#1186</a> Fix for union_ improper inner ring assignment
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes of errors and warnings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/heap/">Heap</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
New requirement will be C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implement parsing directly into user types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add conversion categories for optionals and variants.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Relax iterator requirements for constructors from iterator pairs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix reading beyond input buffer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix inconsistent choice of init list constructor.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
class result&lt;T&gt; marked nodiscard.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added member typedef result&lt;T&gt;::value_type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
verbose_diagnostic_info defers conversion to string until an error
|
||
handling scope is reached.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for embedded development.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved Visual Studio 2015 compatibility (thanks godmaycrying).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Minor bug fixes an improvements.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped support for GCC 4.8 and 4.9.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/lexical_cast/pull/62">PR#62</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed -Wdeprecated-copy-with-dtor warnings with clang. Thanks to
|
||
<a href="https://github.com/Romain-Geissler-1A">Romain Geissler</a>
|
||
for the PR <a href="https://github.com/boostorg/lexical_cast/pull/59">PR#59</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.Range <a href="https://github.com/boostorg/lexical_cast/pull/63">PR#63</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">to_title</span></code> for the
|
||
WinAPI backend returns the string unchanged instead of an empty string
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for <code><span class="identifier">char8_t</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">u8string</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix off-by-one error when using negative times <a href="https://github.com/boostorg/locale/pull/198">PR#198</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix escape-handling of curly braces in format strings <a href="https://github.com/boostorg/locale/issues/194">#194</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix some build errors and warnings, notably one on MSVC, see <a href="https://github.com/boostorg/locale/issues/189">#189</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 support is deprecated and will be removed in release 1.86.
|
||
New requirement will be C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported. A C++11 or later compiler is required.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
When built with C++11 compilers that are conforming enough for Boost.Regex
|
||
v5 to be used, Boost.Log no longer links with Boost.Regex prebuilt
|
||
library, since Boost.Regex v5 is header-only.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for Windows versions older than Windows 10 is deprecated
|
||
and will be removed in Boost 1.87.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improve ccmath error detection.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove use of deprecated std::numeric_limits&lt;&gt;::has_denorm,
|
||
see <a href="https://github.com/boostorg/math/issues/1028">1028</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct non-convergence bug in non-central-t distribution, see <a href="https://github.com/boostorg/math/issues/1035">1035</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Adjust Bessel function approximation to [sub 1]F[sub 1] to avoid
|
||
taking tgamma at a negative integer, see <a href="https://github.com/boostorg/math/issues/1034">1034</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Avoid spurious overflow and divide by zero in ibeta, see <a href="https://github.com/boostorg/math/issues/1006">1006</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve accuracy when using Sterling's approximation to tgamma, completes
|
||
work started in <a href="https://github.com/boostorg/math/pull/1007">1007</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix inverse_discrete_quantile for large initial guesses, see <a href="https://github.com/boostorg/math/pull/1007">1007</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve Newton root finding, see <a href="https://github.com/boostorg/math/pull/1000">1000</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix median_absolute_deviation for non-zero centre, see <a href="https://github.com/boostorg/math/pull/997">997</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix up cstdfloat.hpp for gcc-14.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update to work for the new types declared in &lt;stdfloat&gt;.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Change hypergeometric_distribution to use 64 rather than 32 bit integers
|
||
to avoid unnecessary overflow and restrictions on use.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a serialization-related compile-time bug in old compilers without
|
||
ADL support (issue <a href="https://github.com/boostorg/multi_index/issues/70">#70</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">array</span></code> to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>
|
||
in the tests, fixes <a href="https://github.com/boostorg/multiprecision/issues/567">567</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct cpp_int::eval_convert_to to be noexcept, fixes <a href="https://github.com/boostorg/multiprecision/issues/553">553</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make sure that changing the global precision, also changes the current
|
||
thread precision.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix rational_adaptor construction bug, fixes <a href="https://github.com/boostorg/multiprecision/issues/540">540</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">reset_connection</span></code>
|
||
and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">async_reset_connection</span></code>. These functions
|
||
clean session state (including prepared statements, variables, locks
|
||
and more) without closing and re-opening the connection.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added error codes introduced in MySQL server v8.1.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added fuzz testing for the deserialization functions.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Big new feature: field names reflection</strong>.
|
||
Added new <code><span class="keyword">constexpr</span></code>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get_name</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">,</span> <span class="identifier">T</span><span class="special">&gt;()</span></code>
|
||
function that returns a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
||
with a name of field at index <code><span class="identifier">N</span></code>
|
||
of an aggregate <code><span class="identifier">T</span></code>.
|
||
Requires C++20. <code><span class="identifier">BOOST_PFR_CORE_NAME_ENABLED</span></code>
|
||
is defined to 1 if the functionality is available. Many thanks to
|
||
<a href="https://github.com/denzor200">Denis Mikhailov</a>,
|
||
<a href="https://github.com/schaumb">Bela Schaum</a> and
|
||
<a href="https://github.com/X-Ryl669">X-Ryl669</a> for the
|
||
PR <a href="https://github.com/boostorg/pfr/pull/129">PR#129</a>
|
||
and implementation ideas.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">for_each_field</span><span class="special">()</span></code>
|
||
is now <code><span class="keyword">constexpr</span></code> for
|
||
C++17. Many thanks to <a href="https://github.com/alexkaratarakis">Alexander
|
||
Karatarakis</a> for the PR <a href="https://github.com/boostorg/pfr/pull/134">PR#134</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Version 1.15.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add detection of Microsoft STL (from Henrik Gaßmann).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/random/">Random</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflows in tests using Boost.Multiprecision
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code>
|
||
has been removed. Ratio is now implemented in terms of the standard
|
||
<code><span class="special">&lt;</span><span class="identifier">ratio</span><span class="special">&gt;</span></code> header.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported. Thanks to <a href="https://github.com/leha-bot">Alex</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/139">PR#139</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">addr2line</span></code> for
|
||
pie binaries. Thanks to <a href="https://github.com/ja2142">ja2142</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/138">PR#138</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed build with MinGW-w64 12+. Thanks to <a href="https://github.com/yhsb2k">yhsb2k</a>
|
||
for the PR <a href="https://github.com/boostorg/stacktrace/pull/140">PR#140</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing include. Thanks to <a href="https://github.com/francesco-ballarin">Francesco
|
||
Ballarin</a> for the PR <a href="https://github.com/boostorg/stacktrace/pull/143">PR#143</a>!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">U</span><span class="special">&amp;,</span> <span class="identifier">E</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">|</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&amp;</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&amp;=</span></code>
|
||
for <code><span class="identifier">result</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed useage of PRIxPTR for glibc 2.2 - 2.17 <a href="https://github.com/boostorg/test/pull/392">PR#392</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed MSVC warning C5263: calling 'std::move' on a temporary object
|
||
prevents copy elision <a href="https://github.com/boostorg/test/pull/390">PR#390</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/thread/">Thread</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS</span><span class="special">((</span><span class="identifier">A</span><span class="special">)(</span><span class="identifier">B</span><span class="special">)(</span><span class="identifier">C</span><span class="special">)(</span><span class="identifier">D</span><span class="special">))</span></code> changed syntax to <code><span class="identifier">BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS</span><span class="special">(</span><span class="identifier">A</span><span class="special">,</span> <span class="identifier">B</span><span class="special">,</span> <span class="identifier">C</span><span class="special">,</span> <span class="identifier">D</span><span class="special">)</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped Boost.PP dependency.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/typeof/">TypeOf</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_set</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="special">[</span><span class="identifier">c</span><span class="special">]</span><span class="identifier">visit_while</span></code>
|
||
operations to concurrent containers, with serial and parallel variants.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added efficient move construction of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_</span><span class="special">(</span><span class="identifier">map</span><span class="special">|</span><span class="identifier">set</span><span class="special">)</span></code> from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_</span><span class="special">(</span><span class="identifier">map</span><span class="special">|</span><span class="identifier">set</span><span class="special">)</span></code> and vice versa.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added bulk visitation to concurrent containers for increased lookup
|
||
performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added debug-mode mechanisms for detecting illegal reentrancies into
|
||
a concurrent container from user code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Boost.Serialization support to all containers and their (non-local)
|
||
iterator types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for fancy pointers to open-addressing and concurrent
|
||
containers. This enables scenarios like the use of Boost.Interprocess
|
||
allocators to construct containers in shared memory.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bug in member of pointer operator for local iterators of closed-addressing
|
||
containers (<a href="https://github.com/boostorg/unordered/pull/221">PR#221</a>, credit goes to GitHub user vslashg
|
||
for finding and fixing this issue).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Starting with this release, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_</span><span class="special">[</span><span class="identifier">multi</span><span class="special">]</span><span class="identifier">set</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_</span><span class="special">[</span><span class="identifier">multi</span><span class="special">]</span><span class="identifier">map</span></code> only work with C++11 onwards.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++03 is no longer supported <a href="https://github.com/boostorg/variant/pull/107">PR#107</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped Boost.Move and Boost.Bind dependencies.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/188">#188</a>: Segmentation fault when "#pragma\n" is encountered
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
|
||
15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
|
||
14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
|
||
13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_84_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.83.0</title><link>https://www.boost.org/users/history/version_1_83_0.html</link><guid>https://www.boost.org/users/history/version_1_83_0.html</guid><pubDate>Fri, 11 Aug 2023 16:23:02 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_83_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
These are patches from library authors which were found too late to be fixed
|
||
in the release.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
JSON
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Compilation on Windows ARM platforms may fail for missing intrinsics,
|
||
see <a href="https://github.com/boostorg/json/issues/926">#926</a> and <a href="https://github.com/boostorg/json/issues/927">#927</a>. <a href="https://github.com/boostorg/json/commit/c4ce8509d015a0b75cfa9d36609b8409821a9c86.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Unordered
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix erroneous copy assigment operator that would destroy non-existent
|
||
elements, see <a href="https://github.com/boostorg/unordered/issues/205">#205</a>. <a href="https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span> A repository of C++11
|
||
implementations of standard components added in later C++ standards, from
|
||
Peter Dimov and contributors.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">anys</span><span class="special">::</span><span class="identifier">unique_any</span></code> C++11 class - an alternative
|
||
to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> (or to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">any</span></code>)
|
||
that does not require copy or move construction from the held type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ported documentation to Quickbook, Doxygen comments now used in code.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation of <code><span class="identifier">atomic_ref</span></code>
|
||
for <code><span class="keyword">const</span></code>-qualified
|
||
types. Note that even <code><span class="keyword">const</span></code>-qualified
|
||
atomic objects must still reside in read-write memory. (<a href="https://github.com/boostorg/atomic/issues/62">#62</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Remove use of deprecated Boost.Ratio features.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">latch</span><span class="special">.</span><span class="identifier">hpp</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">latch</span></code> (contributed by Christian
|
||
Mazakas.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">shared_lock</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
a (partial) implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_lock</span></code>
|
||
(contributed by Christian Mazakas.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for incomplete types to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">type_name</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bit manipulation functions in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
are now <code><span class="keyword">constexpr</span></code> on
|
||
recent MSVC versions (VS2019 update 5 and later.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">byteswap</span></code> (an implementation of
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byteswap</span></code> from C++23) to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved the yield primitives <code><span class="identifier">sp_thread_pause</span></code>,
|
||
<code><span class="identifier">sp_thread_yield</span></code>,
|
||
<code><span class="identifier">sp_thread_sleep</span></code> from
|
||
SmartPtr implementation details to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">yield_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed tests failures on glibc 2.36+, thanks to <a href="https://github.com/sgn">Đoàn
|
||
Trần Công Danh</a> for the bugreport <a href="https://github.com/boostorg/dll/issues/58">#58</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">refresh</span></code>
|
||
method that updates internal cached file statuses for the directory
|
||
entry identified by path.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">directory_entry</span></code>
|
||
constructors and modifiers that initialize or modify the path now
|
||
automatically call <code><span class="identifier">refresh</span></code>.
|
||
This may result in errors that were not indicated before and in
|
||
<strong>v3</strong>, if querying the filesystem for
|
||
file statuses fails (e.g. if the file does not exist). This new behavior
|
||
is similar to std::filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">directory_entry</span></code>
|
||
constructors and methods taking <code><span class="identifier">file_status</span></code>
|
||
parameters are removed. Users are recommended to remove these arguments
|
||
and rely on <code><span class="identifier">directory_entry</span></code>
|
||
calling <code><span class="identifier">refresh</span></code> internally.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">directory_entry</span></code>
|
||
member methods for checking the file type of the file, similar to
|
||
std::filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added more methods for testing file status: <code><span class="identifier">is_block_file</span></code>,
|
||
<code><span class="identifier">is_character_file</span></code>,
|
||
<code><span class="identifier">is_fifo</span></code>, <code><span class="identifier">is_socket</span></code> and <code><span class="identifier">is_reparse_file</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">recursive_directory_iterator</span></code>
|
||
is now more likely to reuse information about the file type that
|
||
is obtained during filesystem iteration. This may improve performance.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/288">#288</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
File streams defined in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">fstream</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
are now movable, if the standard library file streams are. (<a href="https://github.com/boostorg/filesystem/issues/280">#280</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">cstdio</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
with a portable <code><span class="identifier">fopen</span></code>
|
||
overload that takes <code><span class="identifier">path</span></code>
|
||
as the first argument. This function is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fopen</span></code>, except that on Windows it
|
||
uses the native wide character encoding for paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Generic <code><span class="identifier">path</span></code> comparison
|
||
operators are now more restricted to avoid potential ambiguities
|
||
when user's code contains a <code><span class="keyword">using</span>
|
||
<span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">;</span></code> directive. (<a href="https://github.com/boostorg/filesystem/issues/285">#285</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed potential overload resolution ambiguity in users' code, where
|
||
<code><span class="identifier">path</span></code> constructors
|
||
from iterators could interfere with function overloads taking a
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> argument. (<a href="https://github.com/boostorg/filesystem/issues/287">#287</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, added more workarounds for errors returned by various
|
||
filesystems when creating a directory iterator. (<a href="https://github.com/boostorg/filesystem/issues/284">#284</a>,
|
||
<a href="https://github.com/boostorg/filesystem/issues/286">#286</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, relaxed access rights needed for querying file times.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/290">#290</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added smart-pointer syntax to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweight</span></code>
|
||
(<code><span class="keyword">operator</span><span class="special">*</span></code>
|
||
and <code><span class="keyword">operator</span><span class="special">-&gt;</span></code>
|
||
dereferencing to the underlying value).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a situation where the mutex used by <a href="https://www.boost.org/libs/flyweight/doc/reference/locking.html#simple_locking_synopsis"><code><span class="identifier">simple_locking</span></code></a> was not
|
||
recursive (issue <a href="https://github.com/boostorg/flyweight/issues/12">#12</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1140">PR#1140</a> Drop dependencies and replace boost with
|
||
std in several places
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1154">PR#1154</a> Add missing headers so that all headers
|
||
compile independently complying with Boost policy
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1157">PR#1157</a> Check const Ring concept in calculate_point_order
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1100">#1100</a> Fix for union
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1139">#1139</a> Fix for different geometry types
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1158">#1158</a> Fix for convex hull
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1161">#1161</a> Fix within algorithm for geometries having
|
||
a pole as a vertex
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes of errors and warnings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">is_iterator</span></code>
|
||
type trait that allows to test whether the type qualifies as an iterator
|
||
type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">filter_iterator</span></code> now
|
||
supports move-construction of the adopted iterator and the function
|
||
object. (<a href="https://github.com/boostorg/iterator/pull/79">PR#79</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The library now only throws <code><span class="identifier">system_error</span></code>,
|
||
except for when allocation failed, in which case <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code>
|
||
is thrown.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Serialization behavior can now be changed by <code><span class="identifier">serialize_options</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Contextual conversions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser option for more precise number parsing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support <code><span class="identifier">parse_options</span></code>
|
||
in stream <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser option to allow <code><span class="identifier">Infinity</span></code>
|
||
and <code><span class="identifier">NaN</span></code> JSON literals.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parser mode that only validates numbers rather than parsing them.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Numbers with exponent larger than <code><span class="identifier">INT_MAX</span></code>
|
||
are accepted by the parser and treated as infinity.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">object</span></code> member
|
||
functions that should provide strong guarantee.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix ambiguity of <code><span class="identifier">end</span></code>
|
||
call when <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">.</span><span class="identifier">hpp</span></code> is included.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix ASan failures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix error message for <code><span class="identifier">error</span><span class="special">::</span><span class="identifier">size_mismatch</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix conversion into tuple with const elements.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/index.html">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Bitwise/binary operators (left/right shift, binary and/or/xor/not)
|
||
are no longer supported in message catalog files matching GNU gettext
|
||
behavior
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Std backend on Windows uses the classic locale instead of the system
|
||
locale when the requested locale does not exist (now same as on other
|
||
OSs)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">localization_backend_manager</span><span class="special">::</span><span class="identifier">get</span></code>
|
||
is deprecated, use the generator instead
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New converter classes as alternative to <code><span class="identifier">to_utf</span></code>/<code><span class="identifier">from_utf</span></code>/<code><span class="identifier">between</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix UB on invalid index in format strings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix conversion of UTF to e.g. iso-2022-jp on Windows without ICU
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use <code><span class="keyword">long</span> <span class="keyword">long</span></code>
|
||
as the count parameter for pluralized translations
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix movability and exception specification for some classes
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a possible infinite loop in <code><span class="identifier">text_file_backend</span></code>,
|
||
when the size of a formatted log record exceeds the <code><span class="identifier">rotation_size</span></code> limit. (<a href="https://github.com/boostorg/log/issues/209">#209</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added Numerical evaluation of Fourier transform of Daubechies scaling
|
||
functions <a href="https://github.com/boostorg/math/pull/921">921</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added logcdf function to statistical distributions <a href="https://github.com/boostorg/math/pull/946">946</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for C++23's <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code>
|
||
types <a href="https://github.com/boostorg/math/pull/978">978</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed various <code><span class="special">-</span><span class="identifier">Wmaybe</span><span class="special">-</span><span class="identifier">uninitialized</span></code>
|
||
warnings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">round</span></code> and
|
||
<code><span class="identifier">trunc</span></code> functions for
|
||
non-representable numbers <a href="https://github.com/boostorg/math/pull/968">968</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed calculation of mode for F-distribution <a href="https://github.com/boostorg/math/pull/976">976</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflow in beta distribution <a href="https://github.com/boostorg/math/pull/977">977</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed overflow in hypergeometric distribution <a href="https://github.com/boostorg/math/pull/987">987</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed calculation of median absolute deviation with non-zero center
|
||
<a href="https://github.com/boostorg/math/pull/997">997</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added an offset/from parameter to <code><span class="identifier">mp_from_sequence</span></code>,
|
||
<code><span class="identifier">mp_iota</span></code>, <code><span class="identifier">mp_iota_c</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_value</span></code>,
|
||
<code><span class="identifier">mp_list_v</span></code>, <code><span class="identifier">mp_rename_v</span></code>, <code><span class="identifier">mp_is_value_list</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added value list support to the primitives in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mp11</span><span class="special">/</span><span class="identifier">list</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added value list support to <code><span class="identifier">mp_repeat</span></code>,
|
||
<code><span class="identifier">mp_fill</span></code>, <code><span class="identifier">mp_at</span></code>, <code><span class="identifier">mp_back</span></code>,
|
||
<code><span class="identifier">mp_take</span></code>, <code><span class="identifier">mp_pop_back</span></code>, <code><span class="identifier">mp_drop</span></code>,
|
||
<code><span class="identifier">mp_insert</span></code>, <code><span class="identifier">mp_erase</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Updated range <code><span class="identifier">insert</span></code>
|
||
in non-unique ordered indices to preserve insertion order of equivalent
|
||
elements (issue <a href="https://github.com/boostorg/multi_index/issues/68">#68</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Serialization now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
|
||
instead of <code><span class="keyword">unsigned</span> <span class="keyword">long</span></code> to save and load the size of
|
||
a <code><span class="identifier">multi_index_container</span></code>
|
||
(<code><span class="keyword">unsigned</span> <span class="keyword">long</span></code>
|
||
is smaller than <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code>
|
||
in LLP64 data models). <code><span class="identifier">multi_index_container</span></code>
|
||
serialization <a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class
|
||
version</a> has been bumped from 3 to 4 to reflect this change.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bug in rational adapter division <a href="https://github.com/boostorg/multiprecision/pull/542">542</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of global precsion changes in multi-threaded environments
|
||
<a href="https://github.com/boostorg/multiprecision/pull/552">552</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">cpp_int</span><span class="special">::</span><span class="identifier">eval_convert_to</span></code> noexcept specification
|
||
<a href="https://github.com/boostorg/multiprecision/pull/555">555</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Stored procedures are now fully supported, including <code><span class="identifier">SELECT</span></code> statements producing data
|
||
and procedures with <code><span class="identifier">OUT</span></code>
|
||
parameters.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for multi-queries, which allows running multiple semicolon-separated
|
||
statements with a single call.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A statically-typed interface has been added, which allows parsing
|
||
query results into user-provided types, using <a href="https://www.boost.org/libs/describe/">Boost.Describe</a>
|
||
structs and tuples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Text queries and prepared statements can now be executed using the
|
||
new <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_execution</span></code>
|
||
functions (and their async counterparts). These superseed <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>,
|
||
<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code>.
|
||
The new functions allow access to new features, like the static interface.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A separate compilation mode has been added to help reduce build times.
|
||
Sources are included in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
which must be included in exactly one translation unit.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prepared statements can now be executed using an iterator pair to
|
||
specify parameters, using <code><span class="identifier">statement</span><span class="special">::</span><span class="identifier">bind</span></code>
|
||
and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code>. This enables use cases
|
||
where the number and type of parameters is not known at compile-time.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prepared statement execution now accepts parameters of type <code><span class="keyword">bool</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added error codes and verified compatibility with MySQL v8.0.33 and
|
||
MariaDB v11.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed potential problems with Windows' <code><span class="identifier">min</span><span class="special">()</span></code> and <code><span class="identifier">max</span><span class="special">()</span></code> macros.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All assertions now use <a href="https://www.boost.org/libs/assert/">Boost.Assert</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All exceptions are now thrown via <a href="https://www.boost.org/libs/throw_exception/">Boost.ThrowException</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Immediate completions are now correctly dispatched through the I/O
|
||
object executor.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change default <code><span class="identifier">BOOST_RATIO_VERSION</span></code>
|
||
to 2.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code>
|
||
is now deprecated and will eventually be removed when Boost.Ratio
|
||
is implemented in terms of the standard <code><span class="special">&lt;</span><span class="identifier">ratio</span><span class="special">&gt;</span></code>
|
||
header.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added addtional older platforms to CI system (e.g. GCC 4.6)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of <code><span class="identifier">uintptr_t</span></code>
|
||
to make sure it is portable on 32-bit systems <a href="https://github.com/boostorg/test/pull/353">353</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed warnings from <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">dtor</span></code> and <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">user</span><span class="special">-</span><span class="identifier">provided</span><span class="special">-</span><span class="identifier">dtor</span></code> <a href="https://github.com/boostorg/test/pull/375">375</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of <code><span class="identifier">check_is_close</span></code>
|
||
for C++23 <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code> types <a href="https://github.com/boostorg/test/pull/382">382</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/timer/">Timer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Remove dependency on Boost.Chrono, Boost.System, and others.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disable deprecated headers unless <code><span class="identifier">BOOST_TIMER_ENABLE_DEPRECATED</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_map</span></code>, a fast, thread-safe
|
||
hashmap based on open addressing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Sped up iteration of open-addressing containers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In open-addressing containers, <code><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span></code>, which previously returned nothing,
|
||
now returns a proxy object convertible to an iterator to the next
|
||
element. This enables the typical <code><span class="identifier">it</span>
|
||
<span class="special">=</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code> idiom without incurring any performance
|
||
penalty when the returned proxy is not used.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">parse_query</span></code> does
|
||
not recreate <code><span class="identifier">string_view</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/757">#757</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">url_view</span></code>/<code><span class="identifier">string_view</span></code> constructor requires
|
||
non-<code><span class="identifier">url_view_base</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/756">#756</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">IP</span><span class="special">-</span><span class="identifier">literal</span></code> can be <code><span class="identifier">IPv6addrz</span></code>.
|
||
(<a href="https://github.com/boostorg/url/issues/711">#711</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/uuid/">UUID</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved generated x86 code for AVX targets. Removed the use of
|
||
<code><span class="identifier">lddqu</span></code> instruction
|
||
on SSE3 targets, which penalize performance on Intel NetBurst CPUs
|
||
but is more optimal on Skylake and later CPUs. (<a href="https://github.com/boostorg/uuid/pull/138">PR#138</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">uses_double_storage</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_10_1">B2
|
||
version 4.10.1</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
|
||
15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
|
||
14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
|
||
13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++03: 4.6.3, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++03: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_83_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.82.0</title><link>https://www.boost.org/users/history/version_1_82_0.html</link><guid>https://www.boost.org/users/history/version_1_82_0.html</guid><pubDate>Fri, 14 Apr 2023 03:08:20 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_82_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
These are patches from library authors which were found too late to be fixed
|
||
in the release.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Filesystem
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Compilation on OpenBSD may fail because of broken support for <code><span class="special">-</span><span class="identifier">Wl</span><span class="special">,--</span><span class="identifier">no</span><span class="special">-</span><span class="identifier">undefined</span></code>
|
||
compiler flag for shared libraries on this platform, see <a href="https://github.com/boostorg/filesystem/issues/283">#283</a>.
|
||
<a href="https://www.boost.org/patches/1_82_0/0001-filesystem-fix-openbsd-build.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, creating directory iterators over directories in SMBv1
|
||
shares may fail with <code><span class="identifier">ERROR_INVALID_LEVEL</span></code>
|
||
error code, see <a href="https://github.com/boostorg/filesystem/issues/284">#284</a>. <a href="https://www.boost.org/patches/1_82_0/0002-filesystem-fix-win-smbv1-dir-iterator.patch">Patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_82_0.notice_of_dropping_c_03_support">
|
||
<h3><span class="link">Notice
|
||
of Dropping C++03 Support</span></h3>
|
||
<p>
|
||
The following libraries will be dropping C++03 support in release 1.84, two
|
||
releases from now:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Align
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Any
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Asio
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Atomic
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bind
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Chrono
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
ContainerHash
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Conversion
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
DLL
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Endian
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Filesystem
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Function
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Functional
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Io
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
LexicalCast
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Log
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Random
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ratio
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
SmartPtr
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
System
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Stacktrace
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Thread
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Timer
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
TypeIndex
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Typeof
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Unordered
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Variant
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
This release (1.82) and the next (1.83) will be the last releases offering
|
||
C++03 support for the above libraries and most of their dependencies.
|
||
</p>
|
||
<p>
|
||
The new baseline requirement for the above libraries, and for most of Boost,
|
||
will be C++11. Since old compiler versions often implement C++11 only partially,
|
||
due to missing support or bugs, what compilers are considered to meet the C++11
|
||
requirement may vary by library.
|
||
</p>
|
||
<p>
|
||
However, a general rule is that if a compiler does not recognize a C++11 keyword
|
||
or syntax at all (e.g. use of <code><span class="keyword">noexcept</span></code>,
|
||
use of <code><span class="keyword">constexpr</span></code>, or defining
|
||
a <code><span class="special">=</span><span class="keyword">delete</span></code>d
|
||
function results in an immediate compile error), or if a compiler does not
|
||
provide a required C++11 header at all (e.g. trying to include <code><span class="special">&lt;</span><span class="identifier">atomic</span><span class="special">&gt;</span></code> or <code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">&gt;</span></code>
|
||
fails), or the compiler provides a C++11 feature or a header that is completely
|
||
unusable, this compiler is not considered a C++11 compiler.
|
||
</p>
|
||
<p>
|
||
This rules out, for instance, Microsoft Visual C++ before 14.0, or GCC before
|
||
4.8.
|
||
</p>
|
||
</div>
|
||
<div id="version_1_82_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mysql/">Mysql</a>:</span> a C++11 client for the MySQL
|
||
database server, based on Boost.Asio, from Ruben Perez.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_82_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>
|
||
Now uses <code><span class="identifier">core</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code> header instead of the deprecated
|
||
<code><span class="identifier">utility</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code>. Thanks to Michael Ford for
|
||
the PR <a href="https://github.com/boostorg/any/pull/25">PR#25</a>.
|
||
</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 the ability to customise the execution of a completion handler
|
||
when an operation completes immediately.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added user-defined literals for buffer types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new protocol type <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">seq_packet_protocol</span></code>
|
||
to represent <code><span class="identifier">AF_UNIX</span></code>
|
||
with <code><span class="identifier">SOCK_SEQPACKET</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Exposed <code><span class="identifier">sigaction</span><span class="special">()</span></code> flags via an optional argument
|
||
to <code><span class="identifier">signal_set</span><span class="special">::</span><span class="identifier">add</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Change <code><span class="identifier">allocator_binder</span></code>,
|
||
<code><span class="identifier">executor_binder</span></code>,
|
||
and <code><span class="identifier">cancellation_slot_binder</span></code>
|
||
to support detection of unspecialised associators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed ambiguity in <code><span class="identifier">associated_cancellation_slot</span><span class="special">&lt;</span><span class="identifier">reference_wrapper</span><span class="special">&gt;::</span><span class="identifier">get</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>
|
||
handling for completion signatures containing <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel</span><span class="special">&lt;&gt;</span></code> <code><span class="identifier">try_send</span></code>
|
||
failure after a <code><span class="identifier">cancel</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">thread_pool</span><span class="special">::</span><span class="identifier">join</span><span class="special">()</span></code> deadlock when the pool has no internal
|
||
threads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed pipe <code><span class="identifier">release</span><span class="special">()</span></code> when using <tt>io_uring</tt>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed data initialisation and cleanup issues in the <tt>io_uring</tt>
|
||
backend.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a dangling reference issue in the execution context overload
|
||
of <code><span class="identifier">get_associated_executor</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured buffered messages can still be received when an <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel</span><span class="special">&lt;&gt;</span></code>
|
||
is closed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">any_completion_handler</span></code>
|
||
assignment operator.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Constrained the constructor of <code><span class="identifier">any_completion_handler</span></code>
|
||
to prevent accidental copying
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to use <code><span class="identifier">uint64_t</span></code>
|
||
for OpenSSL options, to match OpenSSL 3.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">deferred</span></code> interoperability
|
||
with multiple completion signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed channels to add partial support for C++11 and C++14.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing handler tracking source location support to <code><span class="identifier">co_composed</span></code> and 'awaitable&lt;&gt;'
|
||
coroutines, when awaiting packaged asynchronous operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some 'potential null dereference' and shadow variable warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> overload selection when
|
||
used with <code><span class="identifier">const_buffers_1</span></code>
|
||
and <code><span class="identifier">mutable_buffers_1</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disabled the runtime check for current Windows version unless targeting
|
||
older Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility between buffered stream wrappers and move-constructible
|
||
streams, such as <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">basic_socket_acceptor</span><span class="special">::</span><span class="identifier">async_accept</span></code>
|
||
compatibility with lambdas that have a deduced return type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">as_tuple</span></code> compatibility
|
||
with legacy completion tokens.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">redirect_error</span></code>
|
||
compatibility with new completion tokens.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a potential, Windows-specific program termination due to exceptions
|
||
that should have been allowed to escape from a destructor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prevented inadvertent <code><span class="identifier">co_await</span></code>
|
||
of boolean expressions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed result handling and support for custom allocators in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">use_coro</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed variadic template emulation for <code><span class="identifier">is_async_operation</span></code>
|
||
and <code><span class="identifier">completion_signature_of</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed incorrect reuse of a moved-from result in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>
|
||
use with custom allocators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">seek_cur</span></code> behaviour
|
||
with stream-oriented files on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various additions and modifications to the documentation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_82_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>
|
||
When compiled for x86 targets supporting AVX, vector instructions
|
||
are now used for 128-bit atomic loads and stores.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For 32-bit x86 targets, 64-bit atomic loads and stores with <code><span class="identifier">memory_order_seq_cst</span></code> semantics
|
||
will now issue a memory ordering instruction.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage</span><span class="special">()</span></code>
|
||
accessors and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage_type</span></code>
|
||
types that were deprecated in Boost.Atomic 1.73. Users are recommended
|
||
to use <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">()</span></code>
|
||
and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> instead.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">error_code</span></code>s use
|
||
source_location
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
tcp_stream uses the correct executor of the timer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
error_categories use numeric ids
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">file_body</span></code> supports
|
||
seek
|
||
</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 an overload of <code><span class="identifier">hash_value</span></code>
|
||
for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">is_tuple_like</span></code>
|
||
and an overload of <code><span class="identifier">hash_value</span></code>
|
||
for tuple-like types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed string hashing to use <a href="https://github.com/pdimov/mulxp_hash"><code><span class="identifier">mulxp1_hash</span></code></a>. This improves
|
||
both quality and speed.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">snprintf</span><span class="special">.</span><span class="identifier">hpp</span></code> header with portable definitions
|
||
of <code><span class="identifier">snprintf</span></code>, <code><span class="identifier">vsnprintf</span></code> and their <code><span class="keyword">wchar_t</span></code> counterparts.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">is_same</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">is_same</span></code>. The header will be removed
|
||
in a future release. Users are advised to use Boost.TypeTraits or
|
||
C++ standard library type traits instead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> member functions and associated
|
||
methods with <code><span class="keyword">noexcept</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> function with <code><span class="keyword">noexcept</span></code>, depending on whether the
|
||
type supports a non-throwing swap operation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">launder</span></code>, a portable implementation
|
||
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">launder</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">BOOST_CORE_ALIGNOF</span></code>,
|
||
a portable implementation of <code><span class="keyword">alignof</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, a portable equivalent
|
||
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align</span></code>, the alignment of <code><span class="identifier">max_align_t</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">memory_resource</span></code>, a portable equivalent
|
||
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">memory_resource</span></code> from C++17.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">serialization</span><span class="special">.</span><span class="identifier">hpp</span></code>, a collection of primitives
|
||
allowing libraries to implement Boost.Serialization support for their
|
||
types without including a Serialization header and thereby making
|
||
their libraries depend on Serialization.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">data</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code> to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code>
|
||
which adds support for range construction from an <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">identity</span></code>, an implementation of
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">identity</span></code>. This facility has been
|
||
moved from Boost.Functional.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Avoid implicit cast from size_t to uint32_t, thanks to Travers Biddle
|
||
for the PR <a href="https://github.com/boostorg/dll/pull/57">PR#57</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation errors that could have been caused by <code><span class="identifier">path</span></code> conversion constructors being
|
||
too permissive on the accepted arguments. (<a href="https://github.com/boostorg/filesystem/issues/273">#273</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code>
|
||
now presesrves the trailing directory separator. (<a href="https://github.com/boostorg/filesystem/issues/271">#271</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename_and_trailing_separators</span></code>,
|
||
which removes the filename and directory separators preceding it
|
||
from the path. This behavior is similar to <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code>
|
||
in Filesystem <strong>v3</strong>, but is also usable
|
||
in <strong>v4</strong>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_filename</span></code>, which replaces
|
||
filename in a path.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated implementation of the library version selection to avoid
|
||
ODR violations. (<a href="https://github.com/boostorg/filesystem/issues/279">#279</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, added a workaround for querying file attributes for files
|
||
in SMBv1 shares. Previously, directories in SMBv1 shares could have
|
||
been reported as regular files. This does not affect SMBv2 or later.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/282">#282</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/1045">PR#1045</a> Support geographic buffer for (multi)linestrings
|
||
and (multi)polygons
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1114">PR#1114</a> Comparable distance: Add support for dynamic
|
||
geometries
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/1046">PR#1046</a> Support covered_by() for box, geometry combinations
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/705">#705</a> WKT: allow tabs and new lines
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1109">#1109</a>, <a href="https://github.com/boostorg/geometry/issues/1108">#1108</a> Fixes for union
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes in examples
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Breaking changes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The WKT output presentation of an empty polygon is now POLYGON()
|
||
to make it consistent with other geometries
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Replace <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">span</span></code> and <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">make_span</span></code>
|
||
with implementations in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Documentation improvements
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Protect usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">min</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max</span></code> in some cases, contributed
|
||
by Han Jiang (min,max macros are illegially set by popular Windows
|
||
headers so we need to work around)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added test to catch usage of unprotected min,max tokens in the library
|
||
in the future
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes to support latest clang-14 and deduction guides in gcc-11+
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">set_at_pointer</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Caller-provided serializer storage.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">value_to</span></code> supports
|
||
missing elements for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix parser suspend inside an escape character.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make sentinel() return a unique pointer.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">get_system_locale</span></code>
|
||
and dependents will now correctly favor <code><span class="identifier">LC_ALL</span></code>
|
||
over <code><span class="identifier">LC_CTYPE</span></code> as
|
||
defined by POSIX <a href="https://github.com/boostorg/locale/pull/144">PR#144</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">utf8_codecvt</span><span class="special">::</span><span class="identifier">out</span></code> returns <code><span class="identifier">partial</span></code>
|
||
for trailing (UTF) surrogates
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">util</span><span class="special">::</span><span class="identifier">locale_data</span></code> to parse a locale
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">info</span><span class="special">::</span><span class="identifier">encoding</span><span class="special">()</span></code>
|
||
result is now in uppercase as documented, e.g. "UTF-8"
|
||
instead of "utf-8"
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support M49 country codes such as <code><span class="identifier">en_001</span></code>
|
||
or <code><span class="identifier">en_150</span></code> <a href="https://github.com/boostorg/locale/pull/148">PR#148</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Treat <code><span class="identifier">en_US_POSIX</span></code>
|
||
as an alias for the <code><span class="identifier">C</span></code>
|
||
locale <a href="https://github.com/boostorg/locale/pull/148">PR#148</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve error for missing segmentation support (i.e. without ICU)
|
||
<a href="https://github.com/boostorg/locale/pull/149">PR#149</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix compiler warnings
|
||
</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>Deprecated C++11 support</strong>: We now
|
||
require C++14 as a minimum standard. Our minimum tested compiler
|
||
versions are now Clang-5, GCC-5 or MSVC-14.1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Estrin's method for polynomial evaluation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix various issues in non-central distributions to allow for larger
|
||
non-centralities see <a href="https://github.com/boostorg/math/pull/939">939</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added CMake install target.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix special_functions.hpp to disable anything which can't be used
|
||
in an exception-free environment.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Get condition number calculation working in C++14.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="keyword">constexpr</span></code> table
|
||
driven functions to avoid massive slowdown when the code is not actually
|
||
<code><span class="keyword">constexpr</span></code>, see <a href="https://github.com/boostorg/math/issues/923">923</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve tanh_sinh boundary handling, see <a href="https://github.com/boostorg/math/pull/894">894</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add Linux arm64, s390x and Apple M1 testing, fix up test cases to
|
||
handle 128-bit long doubles.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve <code><span class="keyword">constexpr</span></code> math
|
||
functions to better handle infinities and NaN's.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make the integrators const-correct.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix tanh_sinh integrator in case the function underflows, see <a href="https://github.com/boostorg/math/issues/898">898</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Don't use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cbrt</span></code> as some platforms still don't
|
||
support it.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Stop non-central T from raising spurious FE_INVALID exceptions, see
|
||
<a href="https://github.com/boostorg/math/pull/892">892</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix binomial distribution edge case.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve ibeta handling of very small arguments, see <a href="https://github.com/boostorg/math/pull/884">884</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve ibeta handling of infinities and NaN's, see <a href="https://github.com/boostorg/math/issues/878">878</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve error handling in powm1, see <a href="https://github.com/boostorg/math/issues/781">781</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve root-finder bracketing to bracket faster when the exponent
|
||
is super-large or small.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix root finding edge cases, see <a href="https://github.com/boostorg/math/issues/873">873</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Lots of miscellaneous warning fixes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add assertions when using features which require C++17 for better
|
||
error messages when invoking the compiler in a lower std version.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Serialization now uses <code><span class="keyword">unsigned</span>
|
||
<span class="keyword">long</span></code> instead of <a href="https://www.boost.org/libs/serialization/doc/wrappers.html#collection_size_type"><code><span class="identifier">collection_size_type</span></code></a>, and
|
||
<code><span class="identifier">multi_index_container</span></code>
|
||
serialization <a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class
|
||
version</a> has been bumped from 2 to 3 to reflect this change.
|
||
Reading old archives may fail for custom archive types giving special
|
||
treatment to <code><span class="identifier">collection_size_type</span></code>
|
||
values: if this is the case, globally define the macro <code><span class="identifier">BOOST_MULTI_INDEX_ENABLE_SERIALIZATION_COMPATIBILITY_V2</span></code>
|
||
to ensure backwards compatibility in reading operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</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>Deprecated C++11 support</strong>: We now
|
||
require C++14 as a minimum standard. Our minimum tested compiler
|
||
versions are now Clang-5, GCC-5 or MSVC-14.1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new forward declaration header.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update Eigen interoperability so we no longer rely on Eigen's details,
|
||
see <a href="https://github.com/boostorg/multiprecision/issues/479">479</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add Cmake install target.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix cpp_dec_float construction from string in standalone case for
|
||
better error handling, see <a href="https://github.com/boostorg/multiprecision/issues/499">499</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove redundent definitions when in C++17 mode, see <a href="https://github.com/boostorg/multiprecision/pull/530">530</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix the error handling in standalone itrunc and ltrunc.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix potentially uninitialized storage when parsing octal strings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add arm64 and s390x CI testing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add some missing expression template unpacking code for <code><span class="identifier">powm</span></code>, see <a href="https://github.com/boostorg/multiprecision/issues/506">506</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">convert_string</span></code>
|
||
overload accepting a (<code><span class="identifier">std</span><span class="special">::</span></code>)string instance
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">quoted</span></code> to output
|
||
(quoted UTF-8) paths (<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span></code>
|
||
or <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span></code>) to streams <a href="https://github.com/boostorg/nowide/pull/170">PR#170</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>
|
||
Implemented the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">is_implicitly_reflectable</span></code>
|
||
and the machinery for specializing aggregates as reflectable or not,
|
||
thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/111">PR#111</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get</span></code>
|
||
by type of an element in the aggregate.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented the <code><span class="identifier">BOOST_PFR_ENABLED</span></code>
|
||
macro to detect library support for reflection, thanks to Denis Mikhailov
|
||
for the PR <a href="https://github.com/boostorg/pfr/pull/86">PR#86</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed missing terminating character, thanks to Denis Mikhailov for
|
||
the PR <a href="https://github.com/boostorg/pfr/pull/114">PR#114</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pfr</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> compilation on older compilers,
|
||
thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/118">PR#118</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Workaround for broken C++17 stuctured binding in old compilers, thanks
|
||
to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/119">PR#119</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Avoid -Wzero-as-null-pointer-constant warnings, thanks to Markus
|
||
F.X.J. Oberhumer for the PR <a href="https://github.com/boostorg/pfr/pull/117">PR#117</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed multiple typos, thanks to Denis Mikhailov for the fixes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="preprocessor">#pragma</span>
|
||
<span class="identifier">once</span></code>, thanks to <a href="https://github.com/caozhanhao">caozhanhao</a> for the PR
|
||
<a href="https://github.com/boostorg/pfr/pull/121">PR#121</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Multiple fixes and improvements for the docs.
|
||
</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 management for extern processes to V2 (still experimental)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated <code><span class="identifier">wait_for</span></code>
|
||
&amp; <code><span class="identifier">wait_until</span></code>
|
||
in V1 - they will be removed in the future!
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed typos in docs and comments, thanks to Chocobo1 for the PR <a href="https://github.com/boostorg/stacktrace/pull/132">PR#132</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed multithreading flag detection for <code><span class="identifier">backtrace_create_state</span></code>
|
||
if <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/static_string/">StaticString</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Core <code><span class="identifier">string_view</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> interoperability
|
||
</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 several unused variable warnings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed sprintf deprecation warnings
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed undefined behavior in <code><span class="identifier">basic_cstring</span><span class="special">::</span><span class="identifier">rfind</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added CI through Github Actions
|
||
</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 node-based, open-addressing containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_map</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_set</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Extended heterogeneous lookup to more member functions as specified
|
||
in <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html">P2363</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced the previous post-mixing process for open-addressing containers
|
||
with a new algorithm based on extended multiplication by a constant.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bug in internal <code><span class="identifier">emplace</span></code>
|
||
impl where stack-local types were not properly constructed using
|
||
the allocator of the container which breaks uses-allocator construction.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">url</span><span class="special">::</span><span class="identifier">format</span></code> with automatic percent-encoding
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
URL router example
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">set_params</span></code> convenience
|
||
function
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support implicit conversions to <code><span class="identifier">string_view</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Parsing constructors are implicit
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">string_token</span><span class="special">::</span><span class="identifier">arg</span></code> has virtual destructor and
|
||
slice protection
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support <code><span class="identifier">BOOST_URL_DISABLE_THREADS</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements and Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
WIN32_LEAN_AND_MEAN macro redefinition warning
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Comparison differentiates absent and empty components
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Detect <code><span class="identifier">hier_part_rule</span></code>
|
||
with empty-port-like segments
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Segments comparison as if normalized works above root
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
hier-part path-rootless considers invalid segments
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
port as number is set to 0 when it overflows
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
ipv4 to string overflow detection algorithm
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Now uses core/addressof instead of the deprecated utility/addressof.
|
||
Thanks to Michael Ford for the PR <a href="https://github.com/boostorg/variant/pull/105">PR#105</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_82_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_9_4">B2
|
||
version 4.9.4</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_82_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_82_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.81.0</title><link>https://www.boost.org/users/history/version_1_81_0.html</link><guid>https://www.boost.org/users/history/version_1_81_0.html</guid><pubDate>Wed, 14 Dec 2022 17:44:48 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_81_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span> A library for parsing, modifying,
|
||
and printing URLs using only C++11, from Vinnie Falco and Alan de Freitas.
|
||
Features include fast compilation, strong invariants, and strict compliance
|
||
using a memory-friendly approach.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_81_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 the <code><span class="identifier">consign</span></code>
|
||
completion token adapter, which can be used to attach additional
|
||
values to a completion handler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">any_completion_handler</span><span class="special">&lt;&gt;</span></code>, which can be used to type-erase
|
||
completion handlers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">co_composed</span></code>
|
||
to enable lightweight implementations of user-defined asynchronous
|
||
operations using C++20 coroutines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add range-based <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">make_parallel_group</span><span class="special">()</span></code> overloads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">any_completion_executor</span></code>,
|
||
a type-erased wrapper for executors that are associated with completion
|
||
handlers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="identifier">context</span></code>
|
||
query to use_future's executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added nothrow constructor overloads to <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">any_io_executor</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimised representation of empty <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span></code>
|
||
objects to improve the performance of copy and move operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added an <code><span class="identifier">associated_cancellation_slot</span></code>
|
||
specialisation for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">reference_wrapper</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed I/O objects to return their executors by const reference.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed associated to use deduced return types for all two-argument
|
||
<code><span class="identifier">get</span></code> functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">spawn</span></code> implementation
|
||
to catch unhandled exceptions and rethrow them outside of the spawned
|
||
"thread".
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">spawn</span></code> to ensure
|
||
the completion handler is dispatched through the correct executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed cleanup of of terminal-state <code><span class="identifier">spawn</span></code>
|
||
"thread" objects.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">spawn</span></code> and
|
||
<code><span class="identifier">co_spawn</span></code> implementations
|
||
to dispatch cancellation handlers on the correct executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed semantics of 'dispatch' to mean the executor is used as-is.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecated the <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">execute</span></code>
|
||
customisation point and sender/receiver facilities.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a C++11 <code><span class="identifier">parallel_group</span></code>
|
||
example.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed example code to not use the deprecated <code><span class="identifier">resolve</span></code>
|
||
conversions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an ambiguity in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">channel_traits</span></code>
|
||
specialisations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a specialised channel implementation for the for <code><span class="identifier">R</span><span class="special">(</span><span class="identifier">error_code</span><span class="special">)</span></code>
|
||
signature.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Made <code><span class="identifier">cancelled</span><span class="special">()</span></code>
|
||
public on the <code><span class="identifier">async_compose</span></code>
|
||
'self' object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added io_executor_type and get_io_executor to the <code><span class="identifier">async_compose</span></code>
|
||
'self' object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed implementation of <code><span class="identifier">release</span><span class="special">()</span></code> for Windows overlapped handles.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled deferred awaiting for <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>,
|
||
regularised <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">use_coro</span></code>,
|
||
and fixed allocator handling.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Cleaned up <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>
|
||
and made it an asynchronous operation object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Constrained <code><span class="identifier">post</span></code>/<code><span class="identifier">defer</span></code> overloads on ability to require
|
||
<code><span class="identifier">blocking</span><span class="special">.</span><span class="identifier">never</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed descriptor implementation to fall back to <code><span class="identifier">fcntl</span></code>
|
||
if <code><span class="identifier">ioctl</span></code> fails with
|
||
<code><span class="identifier">ENOTTY</span></code> when setting
|
||
non-blocking mode.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed Xcode deprecation warnings related to use of <code><span class="identifier">sprintf</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the arguments passed to <code><span class="identifier">select_reactor</span><span class="special">::</span><span class="identifier">run</span></code>
|
||
when it is run on an internal thread.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation errors when <code><span class="identifier">BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLING</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated detection of C++20 coroutine support on clang 14 and later.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed standard library feature detection to always enable <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code> when targeting C++17
|
||
or later.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed detection of return type deduction with MSVC.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated the asynchronous operation requirements to relax the requirements
|
||
on the associated executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <tt>io_uring</tt> to the implementation notes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_81_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/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">buffers_generator</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">beast</span><span class="special">::</span><span class="identifier">http</span><span class="special">::</span><span class="identifier">message_generator</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">buffer_ref</span></code>,
|
||
so beast buffers can be used with asio.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for per-operation cancellation
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
C++20 awaitable examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
websocket per-message compression options
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
websocket timeout option api
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
multiple content length error
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for default-completion and rebind
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/container_hash/">Container Hash</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The specializations of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code>
|
||
have been removed; it now always calls <code><span class="identifier">hash_value</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for <code><span class="identifier">BOOST_HASH_NO_EXTENSIONS</span></code>
|
||
has been removed. The extensions are always enabled.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All standard containers are now supported. This includes <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">forward_list</span></code> and the unordered
|
||
associative containers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
User-defined containers (types that have <code><span class="identifier">begin</span><span class="special">()</span></code> and <code><span class="identifier">end</span><span class="special">()</span></code> member functions that return iterators)
|
||
are now supported out of the box.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Described structs and classes (those annotated with <code><span class="identifier">BOOST_DESCRIBE_STRUCT</span></code> or <code><span class="identifier">BOOST_DESCRIBE_CLASS</span></code>) are now supported
|
||
out of the box.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">hash_combine</span></code> has
|
||
been improved.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The performance (and quality, as a result of the above change) of
|
||
string hashing has been improved. <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code>
|
||
for strings now passes SMHasher in 64 bit mode.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The documentation has been substantially revised to reflect the changes.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">empty_value</span></code> members
|
||
are now marked as <code><span class="keyword">constexpr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">fclose_deleter</span></code>,
|
||
a deleter that calls <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fclose</span></code>
|
||
on a pointer to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">FILE</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bit manipulation utilities in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
now explicitly require unsigned integers on input. (<a href="https://github.com/boostorg/core/issues/129">#129</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">bit_width</span></code> now returns
|
||
<code><span class="keyword">int</span></code> instead of a value
|
||
of the input argument type. This follows resolution of <a href="https://cplusplus.github.io/LWG/issue3656">LWG3656</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
To allow the inclusion of <code><span class="identifier">enumerators</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
<code><span class="identifier">bases</span><span class="special">.</span><span class="identifier">hpp</span></code>, and <code><span class="identifier">members</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
when the option <code><span class="special">-</span><span class="identifier">pedantic</span></code>
|
||
is used, the invocation of <code><span class="identifier">BOOST_DESCRIBE_ENUM</span></code>
|
||
has been moved from <code><span class="identifier">modifiers</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
into a separate header, <code><span class="identifier">modifier_description</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
As a consequence, <code><span class="identifier">modifiers</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
no longer includes <code><span class="keyword">enum</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
Code that has been relying on this implicit inclusion may fail, and
|
||
will need to be fixed to include <code><span class="keyword">enum</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">path_from_handle</span></code>
|
||
implementation for Windows platforms, thanks to @SaltfishAmi for
|
||
the bug report <a href="https://github.com/apolukhin/Boost.DLL/issues/57">57</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> <code><span class="identifier">path</span></code>
|
||
construction, assignment and appending from containers of characters,
|
||
such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span></code>
|
||
or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special">&lt;</span><span class="keyword">wchar_t</span><span class="special">&gt;</span></code>,
|
||
is deprecated in <strong>v3</strong> and removed
|
||
in <strong>v4</strong>. Please use string types or
|
||
iterators instead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path_traits</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
header is deprecated and will be removed in a future release. The
|
||
header contained implementation details of <code><span class="identifier">path</span></code>
|
||
and should not be used in user's code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Previously deprecated APIs will now generate compilation warnings
|
||
on use. To suppress these warnings, <code><span class="identifier">BOOST_FILESYSTEM_ALLOW_DEPRECATED</span></code>
|
||
macro can be defined when compiling user's code.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation due to a missing include on POSIX systems that
|
||
do not support <code><span class="special">*</span><span class="identifier">at</span></code>
|
||
APIs. (<a href="https://github.com/boostorg/filesystem/issues/250">#250</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows prior to 10, added a workaround for network share filesystem
|
||
that produces <code><span class="identifier">ERROR_INVALID_PARAMETER</span></code>
|
||
when constructing directory iterators. (<a href="https://github.com/boostorg/filesystem/pull/246">PR#246</a>, <a href="https://github.com/boostorg/filesystem/issues/245">#245</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, fixed <code><span class="identifier">weakly_canonical</span></code>
|
||
failing with an <code><span class="identifier">ERROR_INVALID_FUNCTION</span></code>
|
||
error code if the path started with the "\\?\" prefix.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/247">#247</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>,
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">string_view</span></code> and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">string</span></code>
|
||
(as well as respective <code><span class="keyword">wchar_t</span></code>
|
||
counterparts) in <code><span class="identifier">path</span></code>
|
||
constructors, assignment and appending operations. (<a href="https://github.com/boostorg/filesystem/issues/208">#208</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">path</span></code> constructors,
|
||
assignment and appending operations taking a pair of iterators will
|
||
no longer accept iterators with value types that are not one of the
|
||
supported path character types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, improved compatibility of <code><span class="identifier">directory_iterator</span></code>
|
||
with various mounted filesystems and Wine releases prior to 7.21.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/255">#255</a>, <a href="https://github.com/boostorg/filesystem/issues/266">#266</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, deduplicated files are now reported as regular files
|
||
rather than reparse files. (<a href="https://github.com/boostorg/filesystem/issues/262">#262</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/fusion/">Fusion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">identity_view</span></code> (<a href="https://github.com/boostorg/fusion/pull/240">PR#240</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for associative sequences on <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">transform_view</span></code>
|
||
(<a href="https://github.com/boostorg/fusion/pull/239">PR#239</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation for the case when <code><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">reverse_view</span></code>
|
||
used with an associative sequence (<a href="https://github.com/boostorg/fusion/pull/237">PR#237</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed Clang 13 -Wdeprecated-copy warnings (<a href="https://github.com/boostorg/fusion/pull/261">PR#261</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A small dependency reorganization. Now <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">noncopyable</span></code> are used from Boost.Core
|
||
(<a href="https://github.com/boostorg/fusion/pull/249">PR#249</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added CI testing on Linux and MacOS for clang and gcc, fixed CI testing
|
||
on Windows (<a href="https://github.com/boostorg/fusion/pull/245">PR#245</a>, <a href="https://github.com/boostorg/fusion/pull/236">PR#236</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved docs and fixed typos (<a href="https://github.com/boostorg/fusion/issues/234">#234</a>, <a href="https://github.com/boostorg/fusion/pull/235">PR#235</a>, <a href="https://github.com/boostorg/fusion/pull/238">PR#238</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>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1048">#1048</a> Index: Fix dangling references when Indexable
|
||
is returned by value by IndexableGetter
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1076">#1076</a> Union: in rare cases it might miss one polygon
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1081">#1081</a> Union: due to precision it might miss interior
|
||
rings
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1063">#1063</a> Intersection: fix a bug in intersection of
|
||
simple spherical polygons
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1064">#1064</a> Formulas: fix a consistency issue in geodesic
|
||
direct formulas
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/1088">#1088</a> Point: Fix regression for custom point types
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes for missing include files, warnings, C++20 compilation
|
||
errors and documentation
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added new <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">fraction</span></code>
|
||
to compute fractions, their variance, and confidence intervals
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added interval computers for fractions: <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">clopper_pearson</span></code>,
|
||
<code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">wilson_interval</span></code>, <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">jeffreys_interval</span></code>, <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">wald_interval</span></code> which can compute
|
||
intervals with arbitrary confidence level
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">confidence_level</span></code> and <code><span class="identifier">utility</span><span class="special">::</span><span class="identifier">deviation</span></code> types to pass confidence
|
||
levels as probabilities or in multiples of standard deviation for
|
||
all interval computers, respectively
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed internal <code><span class="identifier">sub_array</span></code>
|
||
and <code><span class="identifier">span</span></code> in C++20
|
||
</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>
|
||
now supports perfect forwarding of the assigned values to the wrapped
|
||
function object. (<a href="https://github.com/boostorg/iterator/pull/73">PR#73</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation of constructing a <code><span class="identifier">function_input_iterator</span></code>
|
||
from result of post-incrementing another <code><span class="identifier">function_input_iterator</span></code>.
|
||
(<a href="https://github.com/boostorg/iterator/issues/75">#75</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The result of post-incrementing an iterator based on <code><span class="identifier">iterator_facade</span></code> now supports <code><span class="keyword">operator</span><span class="special">-&gt;</span></code>.
|
||
<code><span class="special">(</span><span class="identifier">it</span><span class="special">++)-&gt;</span><span class="identifier">foo</span></code>
|
||
is equivalent to <code><span class="special">(*</span><span class="identifier">it</span><span class="special">++).</span><span class="identifier">foo</span></code>, which was supported before.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">object</span><span class="special">::</span><span class="identifier">stable_erase</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">parse</span></code> overload
|
||
for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">istream</span></code> and <code><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> for <code><span class="identifier">value</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added rvalue ref-qualified accessors for <code><span class="identifier">value</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Conversion traits were redesigned.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added conversion support for described classes and enums, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span></code>,
|
||
and null-like types (including <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span></code>,
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullopt_t</span></code>, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">monotype</span></code>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added non-throwing conversion from <code><span class="identifier">value</span></code>
|
||
to user types.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation while casting volatile arithmetic types. Thanks
|
||
to Giovanni Cerretani for the bug report <a href="https://github.com/boostorg/lexical_cast/issues/50">#50</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed usage of deprecated headers. Thanks to Michael Ford for the
|
||
PR <a href="https://github.com/boostorg/lexical_cast/pull/53">PR#53</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Major update with some breaking changes.</strong>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
C++11 support is now required, support for C++03 and earlier is dropped
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Some enums have been converted to enum classes - Avoids name clashes
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replace <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code>
|
||
&amp; <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code>
|
||
by fine-grained configuration options as done in Boost.RegEx
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix detection of libiconv allowing Boost.Locale to be build (again)
|
||
on some platforms
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove use of and support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">auto_ptr</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make the <code><span class="identifier">codecvt</span></code>
|
||
using <code><span class="keyword">wchar_t</span></code> on Windows
|
||
assume/use UTF-16 enconding
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Performance improvements: Make <code><span class="identifier">basic_format</span></code>,
|
||
<code><span class="identifier">date_time</span></code> &amp;
|
||
<code><span class="identifier">hold_ptr</span></code> movable,
|
||
Fix use of format cache
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make Boost.Locale compatible with more ICU versions (especially the
|
||
tests)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix RTTI definitions for some classes (visibility issues)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix compatibility of the ICU backend with some libc++ versions
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix return value of some operators to correctly return non-const
|
||
<code><span class="special">*</span><span class="keyword">this</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix int-overflow on negative roll of years in <code><span class="identifier">date_time</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Handle or suppress many warnings which makes the build log cleaner
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add support for more Windows codepages
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix support for Windows codepages like ISO-2022-JP
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix build failure of tests on MSVC
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The library <strong>does not use COM initialization
|
||
any more</strong>. Thanks to Alex Guteniev for the bug report,
|
||
clarifications and PR <a href="https://github.com/boostorg/stacktrace/pull/123">PR#123</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library now may use <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE</span></code>
|
||
macro value while detecting the libbacktrace availability in b2,
|
||
thanks to Ben Gemmill for the bug report <a href="https://github.com/boostorg/stacktrace/issues/115">#115</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC</span></code>
|
||
macro to force a single backtrace_state static instance while using
|
||
the libbacktrace. Thanks to the Rasmus Thomsen for the bug report
|
||
<a href="https://github.com/boostorg/stacktrace/issues/118">#118</a>!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Avoid unresolved references when including only the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">stacktrace</span><span class="special">/</span><span class="identifier">stacktrace</span><span class="special">.</span><span class="identifier">hpp</span></code> header. Thanks to the Long
|
||
Deng for the bug report <a href="https://github.com/boostorg/stacktrace/issues/116">#116</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized stacktrace printing by not calling <code><span class="identifier">strlen</span></code>
|
||
on Windows platforms. Thanks to Alex Guteniev for the bug report
|
||
<a href="https://github.com/boostorg/stacktrace/issues/122">#122</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>
|
||
Improved detection of aggregate initializables in C++14 mode, thanks
|
||
to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/97">PR#97</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Suppress clang-tidy warnings, thanks to Alexander Malkov for the
|
||
PRs <a href="https://github.com/boostorg/pfr/pull/109">PR#109</a>, <a href="https://github.com/boostorg/pfr/pull/104">PR#104</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use fold expressions if they are supported by the compiler. Thanks
|
||
to Jean-Michaël Celerier for the PR <a href="https://github.com/boostorg/pfr/pull/96">PR#96</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>
|
||
Fix two ill-formed <code><span class="identifier">iterator_interface</span></code>
|
||
operators in pre-C++20 iterators with a <code><span class="keyword">const</span></code>
|
||
<code><span class="identifier">value_type</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The macro <code><span class="identifier">BOOST_SYSTEM_DISABLE_THREADS</span></code>
|
||
can now be defined to disable the use of <code><span class="special">&lt;</span><span class="identifier">mutex</span><span class="special">&gt;</span></code>
|
||
(e.g. on single-threaded libstdc++).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">value_type</span></code>,
|
||
<code><span class="identifier">error_type</span></code>, <code><span class="identifier">in_place_value</span></code>, <code><span class="identifier">in_place_error</span></code>
|
||
to <code><span class="identifier">result</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">emplace</span></code> to
|
||
<code><span class="identifier">result</span><span class="special">&lt;&gt;</span></code>.
|
||
</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 fast containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_map</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_flat_set</span></code> based on open
|
||
addressing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added CTAD deduction guides for all containers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing constructors as specified in <a href="https://cplusplus.github.io/LWG/issue2713">LWG
|
||
issue 2713</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Avoid recursive inclusion of headers, thanks to Nathan Sidwell for
|
||
the bug report <a href="https://github.com/boostorg/variant/issues/101">#101</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed usage of deprecated headers, thanks to Michael Ford for the
|
||
PR <a href="https://github.com/boostorg/variant/pull/96">PR#96</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation on clang in C++23 mode, thanks to Ed Catmur for
|
||
the PR <a href="https://github.com/boostorg/variant/pull/98">PR#98</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">json</span><span class="special">::</span><span class="identifier">value_from</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">json</span><span class="special">::</span><span class="identifier">value_to</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_81_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: 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: 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: 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_81_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item>
|
||
</channel>
|
||
</rss>
|