mirror of
https://github.com/boostorg/website.git
synced 2026-01-19 16:52:15 +00:00
6715 lines
342 KiB
XML
6715 lines
342 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.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><item><title>Version 1.80.0</title><link>https://www.boost.org/users/history/version_1_80_0.html</link><guid>https://www.boost.org/users/history/version_1_80_0.html</guid><pubDate>Wed, 10 Aug 2022 21:25:15 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_80_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>
|
|
Config
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Support for libcpp15 which removes <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">unary_function</span></code>
|
|
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">binary_function</span></code>. <a href="https://www.boost.org/patches/1_80_0/0005-config-libcpp15.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Filesystem
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Directory iterators may fail to construct for a network share on
|
|
Windows prior to 10, see <a href="https://github.com/boostorg/filesystem/pull/246">PR#246</a> and <a href="https://github.com/boostorg/filesystem/issues/245">#245</a>.
|
|
<a href="https://www.boost.org/patches/1_80_0/0001-filesystem-win-fix-dir-it-net-share.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, <code><span class="identifier">weakly_canonical</span></code>
|
|
fails to process paths that start with the "\\?\" prefix,
|
|
see <a href="https://github.com/boostorg/filesystem/issues/247">#247</a>. <a href="https://www.boost.org/patches/1_80_0/0002-filesystem-fix-weakly-canonical-long-paths.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On POSIX systems that don't support <code><span class="special">*</span><span class="identifier">at</span></code> APIs, compilation fails due
|
|
to a missing include, see <a href="https://github.com/boostorg/filesystem/issues/250">#250</a>. <a href="https://www.boost.org/patches/1_80_0/0004-filesystem-posix-fix-no-at-apis-missing-include.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Unordered
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Containers are not in a valid state after moving, see <a href="https://github.com/boostorg/unordered/issues/139">#139</a>.
|
|
<a href="https://www.boost.org/patches/1_80_0/0003-unordered-valid-after-move.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix MSVC /RTCc build runtime failures. <a href="https://www.boost.org/patches/1_80_0/0006-unordered-msvc-rtcc.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_80_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
No new libraries.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_80_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 a deduced trailing return type to all asynchronous operations,
|
|
to enable the new form of <code><span class="identifier">async_result</span></code>
|
|
for C++11.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Moved <code><span class="identifier">append</span></code>, <code><span class="identifier">prepend</span></code>, <code><span class="identifier">as_tuple</span></code>,
|
|
and <code><span class="identifier">deferred</span></code> to the
|
|
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span></code> namespace, and made them compatible
|
|
with C++11.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Made <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code>
|
|
compatible with C++11.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">buffer</span><span class="special">()</span></code>
|
|
overloads for contiguous containers, such as <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the ability for <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>-based coroutines to directly
|
|
<code><span class="identifier">co_await</span></code> operations
|
|
that are packaged as function objects.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed <code><span class="identifier">spawn</span><span class="special">()</span></code>
|
|
to be a completion token-based asynchronous operation, and added
|
|
support for cancellation. The <code><span class="identifier">basic_yield_context</span></code>
|
|
token now supports move-only and variadic result types. When targeting
|
|
C++11 and later, <code><span class="identifier">spawn</span><span class="special">()</span></code> and <code><span class="identifier">basic_yield_context</span></code>
|
|
are implemented in terms of Boost.Context directly.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="identifier">is_async_operation</span></code>
|
|
trait and <code><span class="identifier">async_operation</span></code>
|
|
concept.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="identifier">completion_signature_of</span></code>
|
|
trait.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added converting move construction/assignment to posix descriptors,
|
|
serial ports, pipes, Windows <code><span class="identifier">object_handle</span></code>,
|
|
Windows stream handles, and Windows random-access handles.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">release</span><span class="special">()</span></code>
|
|
member functions to pipes, Windows stream handles, and Windows random-access
|
|
handles.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Enabled support for <code><span class="identifier">Endpoint</span></code>
|
|
implementations that return <code><span class="keyword">void</span></code>
|
|
pointers from their <code><span class="identifier">data</span><span class="special">()</span></code> member functions, as per the documented
|
|
<code><span class="identifier">Endpoint</span></code> type requirements.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed <code><span class="identifier">all</span><span class="special">()</span></code>
|
|
and <code><span class="identifier">race</span><span class="special">()</span></code>
|
|
from <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>,
|
|
as <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code> covers this functionality.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added source locations to exceptions and error codes produced by
|
|
the synchronous and asynchronous operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compatibility with OpenSSL 3.0.4 and later.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compatibility with with <tt>-masm=intel</tt>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Explicitly stated that socket <code><span class="identifier">shutdown</span><span class="special">()</span></code> calls are thread-safe with respect
|
|
to certain other synchronous operations on the same socket.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Optimised the move construction of I/O objects where only the executor
|
|
type differs.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">invoke_result</span></code>
|
|
for clang/libc++.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed an issue where <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code>
|
|
initiation incorrectly moved arguments instead of forwarding them.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a sequencing issue in the implementation of <code><span class="identifier">post</span><span class="special">()</span></code>, <code><span class="identifier">dispatch</span><span class="special">()</span></code>, and <code><span class="identifier">defer</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed the <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code> implementation to propagate
|
|
exceptions from awaited initiation functions through the current
|
|
completion handler.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_alloc</span></code>
|
|
with <tt>gcc</tt> 7.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed to avoid using the soon-to-be-deprecated <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_storage</span></code>
|
|
on newer compilers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">aligned_alloc</span></code>
|
|
for older Apple platforms.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed faulty assertions from <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>
|
|
implementation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added defence against Qt-defined macros when building with Intel
|
|
C++.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed the implementation of the <code><span class="identifier">select_reactor</span></code>,
|
|
on Windows, to ensure that any exception resulting from failure to
|
|
recreate its interrupter's sockets will be allowed to propagate out
|
|
through <code><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">run</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed various compiler warnings.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated all composed operations examples, and the C++11 timeouts
|
|
example, to use the new <code><span class="identifier">async_result</span></code>
|
|
form.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added composed operation and coroutine examples for C++20.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Consult the <a href="https://www.boost.org/doc/libs/1_80_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>
|
|
Improved portability of endianness checks on ARM, AArch32 and AArch64
|
|
targets. (<a href="https://github.com/boostorg/atomic/issues/59">#59</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compilation with MSVC 14.0 (Visual Studio 2015) in C++17 mode.
|
|
(<a href="https://github.com/boostorg/atomic/issues/61">#61</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>
|
|
On Windows, added a fallback implementation for querying file attributes
|
|
in case if the file cannot be opened with <code><span class="identifier">ERROR_ACCESS_DENIED</span></code>
|
|
error. This may allow <code><span class="identifier">status</span></code>
|
|
and <code><span class="identifier">symlink_status</span></code>
|
|
to succeed for system files and directories that are not reparse
|
|
points or symlinks. (<a href="https://github.com/boostorg/filesystem/issues/234">#234</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, added a workaround for FAT/exFAT filesystems that produce
|
|
<code><span class="identifier">ERROR_INVALID_PARAMETER</span></code>
|
|
when querying file attributes. This affected <code><span class="identifier">status</span></code>
|
|
and <code><span class="identifier">symlink_status</span></code>,
|
|
which reported that files do not exist, and directory iterators,
|
|
which failed to construct, as well as other dependent operations.
|
|
(<a href="https://github.com/boostorg/filesystem/issues/236">#236</a>, <a href="https://github.com/boostorg/filesystem/issues/237">#237</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Worked around a compilation problem on <a href="https://www.rtems.org/">RTEMS</a>.
|
|
(<a href="https://github.com/boostorg/filesystem/pull/240">PR#240</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Linux, corrected switching to <code><span class="identifier">sendfile</span></code>
|
|
<code><span class="identifier">copy_file</span></code> implementation
|
|
if <code><span class="identifier">copy_file_range</span></code>
|
|
failed with <code><span class="identifier">ENOSYS</span></code>
|
|
in runtime. The <code><span class="identifier">sendfile</span></code>
|
|
fallback implementation used to skip the filesystem type check and
|
|
could fail for some filesystems.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On POSIX systems supporting <code><span class="identifier">openat</span></code>
|
|
and related APIs defined in POSIX.1-2008 and on Windows Vista and
|
|
later, improved protection of <code><span class="identifier">remove_all</span></code>
|
|
against <a href="https://www.cve.org/CVERecord?id=CVE-2022-21658">CVE-2022-21658</a>
|
|
that was implemented in the previous release. The previous fix could
|
|
still result in removing unintended files in <a href="https://github.com/boostorg/filesystem/issues/224#issuecomment-1183738097">certain
|
|
conditions</a>. Other systems remain vulnerable.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
|
<strong>NOTICE:</strong>
|
|
We are planning BREAKING switch to C++17 as minimum required C++ language
|
|
version in one or two releases after Boost 1.80 (<a href="https://github.com/boostorg/gil/issues/676">#676</a>)
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added Perona-Malik anisotropic diffusion algorithm
|
|
(<a href="https://github.com/boostorg/gil/pull/500">PR#500</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added histogram class and related functionality
|
|
(<a href="https://github.com/boostorg/gil/pull/499">PR#499</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added histogram equalization feature (<a href="https://github.com/boostorg/gil/pull/514">PR#514</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added histogram matching algorithm (<a href="https://github.com/boostorg/gil/pull/515">PR#515</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added ability to stack images either horizontally
|
|
(<code><span class="identifier">hstack</span></code>) or
|
|
vertically (<code><span class="identifier">vstack</span></code>)
|
|
(<a href="https://github.com/boostorg/gil/pull/506">PR#506</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added adaptive histogram equalization algorithm
|
|
(<a href="https://github.com/boostorg/gil/pull/516">PR#516</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added Standard Hough Transform and circle rasterization
|
|
(<a href="https://github.com/boostorg/gil/pull/512">PR#512</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2020: Added Bresenham's algorithm for line rasterization
|
|
(<a href="https://github.com/boostorg/gil/pull/512">PR#512</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2021: Added rotation of image by arbitrary angle around
|
|
its center (<a href="https://github.com/boostorg/gil/pull/565">PR#565</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GSoC 2021: Added rasterization support for ellipse based on
|
|
"An Efficient Ellipse-Drawing Algorithm" by Jerry
|
|
Van Aken (<a href="https://github.com/boostorg/gil/pull/585">PR#585</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">image</span></code>
|
|
constructor from compatible view (<a href="https://github.com/boostorg/gil/pull/520">PR#520</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added inverse function for affine <code><span class="identifier">matrix3x2</span></code>
|
|
(<a href="https://github.com/boostorg/gil/pull/527">PR#527</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added standard morphological transformations (<a href="https://github.com/boostorg/gil/pull/541">PR#541</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">for_each_pixel</span></code>
|
|
overload for <code><span class="identifier">any_image</span></code>
|
|
(<a href="https://github.com/boostorg/gil/pull/648">PR#648</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added C++17 polymorphic memory resource typedefs for <code><span class="identifier">image</span></code> class (<a href="https://github.com/boostorg/gil/pull/529">PR#529</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<strong>BREAKING:</strong> The required minimum
|
|
C++ version is changed from from C++11 to C++14. Currently,
|
|
large parts of GIL still compile with a C++11 compiler. However,
|
|
there is no guarantee that it stays that way, and any compilers
|
|
that do not support at least C++14 are considered unsupported
|
|
as of now.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>BREAKING:</strong> <code><span class="identifier">any_color_converted_view</span><span class="special">()</span></code> is deprecated and will be
|
|
removed in the next release. Use <code><span class="identifier">color_converted_view</span><span class="special">()</span></code> instead, which provides the
|
|
same feature.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>BREAKING:</strong> <code><span class="identifier">apply_operation</span></code>
|
|
for <code><span class="identifier">any_image</span></code>
|
|
is deprecated and will be removed in the next release. Use
|
|
<code><span class="identifier">variant2</span><span class="special">::</span><span class="identifier">visit</span></code> instead, which provides
|
|
the same feature. (<a href="https://github.com/boostorg/gil/pull/656">PR#656</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Moved numeric extension to core (<a href="https://github.com/boostorg/gil/pull/573">PR#573</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for C++17's <code><span class="special">&lt;</span><span class="identifier">filesystem</span><span class="special">&gt;</span></code>
|
|
(<a href="https://github.com/boostorg/gil/pull/636">PR#636</a>) The availability of the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span></code>
|
|
is detected automatically, unless the <code><span class="identifier">BOOST_GIL_IO_USE_BOOST_FILESYSTEM</span></code>
|
|
macro is defined that forces the preference of the Boost.Filesystem.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Renamed <code><span class="identifier">pixel_multiply_t</span></code>
|
|
to <code><span class="identifier">pixel_multiplies_t</span></code>
|
|
and <code><span class="identifier">pixel_divide_t</span></code>
|
|
to <code><span class="identifier">pixel_divides_t</span></code>
|
|
(<a href="https://github.com/boostorg/gil/pull/655">PR#655</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Renamed <code><span class="identifier">io</span><span class="special">/</span><span class="identifier">dynamic_io_new</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
to <code><span class="identifier">io</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">dynamic</span><span class="special">.</span><span class="identifier">hpp</span></code> (<a href="https://github.com/boostorg/gil/pull/653">PR#653</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Moved function <code><span class="identifier">construct_matched</span></code>
|
|
into <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">gil</span><span class="special">::</span><span class="identifier">detail</span></code>
|
|
namespace as it was only used by other implementation details
|
|
(<a href="https://github.com/boostorg/gil/pull/653">PR#653</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Made <code><span class="identifier">packed_pixel</span></code>
|
|
trivially copyable and assignable (<a href="https://github.com/boostorg/gil/pull/679">PR#679</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Replace deprecated libtiff v4.3 typedefs with C99 fixed-size
|
|
integers (<a href="https://github.com/boostorg/gil/pull/685">PR#685</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<strong>BREAKING:</strong> Removed support
|
|
for GCC 5 (<a href="https://github.com/boostorg/gil/pull/572">PR#572</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed deprecated.hpp (<a href="https://github.com/boostorg/gil/pull/627">PR#627</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed conversion from RGB to HSL (<a href="https://github.com/boostorg/gil/pull/505">PR#505</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed conversion from RGB to signed CMYK (<a href="https://github.com/boostorg/gil/pull/522">PR#522</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed unnecessary numeric cast in hsv.hpp (<a href="https://github.com/boostorg/gil/pull/530">PR#530</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed default constructor for <code><span class="identifier">homogeneous_color_base</span></code>
|
|
for reference pixel elements (<a href="https://github.com/boostorg/gil/pull/542">PR#542</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed returning reference to local temporary object in <code><span class="identifier">subchroma_image_view</span></code> (<a href="https://github.com/boostorg/gil/pull/556">PR#556</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added missing header guards in diffusion.hpp (<a href="https://github.com/boostorg/gil/pull/568">PR#568</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">any_image_view</span><span class="special">&lt;&gt;::</span><span class="identifier">const_t</span></code>
|
|
(<a href="https://github.com/boostorg/gil/pull/526">PR#526</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed C++20 incompatibilities in I/O extensions (<a href="https://github.com/boostorg/gil/pull/617">PR#617</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Ensured all examples build without errors (<a href="https://github.com/boostorg/gil/pull/628">PR#628</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">convolve_2d</span></code>
|
|
for images with <code><span class="identifier">float32_t</span></code>
|
|
channel model (<a href="https://github.com/boostorg/gil/pull/577">PR#577</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">for_each_pixel</span></code>
|
|
for non-1d iterable views (<a href="https://github.com/boostorg/gil/pull/621">PR#621</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed: <code><span class="identifier">is_equal_to_sixteen</span></code>
|
|
in PNG I/O was less-than test (<a href="https://github.com/boostorg/gil/pull/650">PR#650</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Re-allow <code><span class="identifier">devicen_t</span></code>
|
|
with two components (<a href="https://github.com/boostorg/gil/pull/654">PR#654</a>) It was unintentionally removed
|
|
in Boost 1.72
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed memory leak in <code><span class="identifier">image</span></code>
|
|
class for empty dimensions (<a href="https://github.com/boostorg/gil/pull/649">PR#649</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Acknowledgements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Cypre55, Samuel Debionne, Mike-Devel, Edward Diener, Peter
|
|
Dimov, Omar Emara, Dhruva Gole, Nicolas Herry, Eugene K, Avinal
|
|
Kumar, Gaurav Kumar, Marco Langer, Pranam Lashkari, Mateusz
|
|
Łoskot, Giovanni Mascellani, Debabrata Mandal, Gopi Krishna
|
|
Menon, René Ferdinand Rivera Morell, Felix Morgner, Harshit
|
|
Pant, Paul92, André Schröder, Scramjet911, Siddharth, Dirk
|
|
Stolle, Prathamesh Tagore, theroyn, Olzhas Zhumabek
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/atomic/">Graph</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Bug fixes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fix bug in <code><span class="identifier">stoer_wagner_min_cut</span></code>
|
|
where vertices are not merged at the end of each mincut phase
|
|
(<a href="https://github.com/boostorg/graph/issues/286">#286</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix conversion warning for return type of <code><span class="identifier">strong_components</span></code>
|
|
(<a href="https://github.com/boostorg/graph/issues/293">#293</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix compilation failure of <code><span class="identifier">boykov_kolmogorov_max_flow</span></code>
|
|
named parameter overload (<a href="https://github.com/boostorg/graph/issues/232">#232</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
General code improvements:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Remove redundant call to <code><span class="identifier">combine</span></code>
|
|
in <code><span class="identifier">astar_search_no_init_tree</span></code>
|
|
(<a href="https://github.com/boostorg/graph/issues/260">#260</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Remove redundant <code><span class="identifier">child_idx</span></code>
|
|
argument of <code><span class="identifier">d_ary_heap_indirect</span><span class="special">&lt;&gt;::</span><span class="identifier">child</span></code>
|
|
(<a href="https://github.com/boostorg/graph/issues/261">#261</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve documentation for traversal categories (<a href="https://github.com/boostorg/graph/issues/303">#303</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Acknowledgements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Viktor Pti, Sebastian Brockmeyer, Etienne dg
|
|
</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>
|
|
Fixed segfault in <code><span class="identifier">indexed</span></code>
|
|
when trying to iterate over histogram with axes of zero size (physical
|
|
or logical) under certain conditions
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed previously deprecated API
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
class <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">thread_safe</span></code>:
|
|
use <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">count</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="keyword">true</span><span class="special">&gt;</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Methods <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">large</span></code>
|
|
and <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">small</span></code>:
|
|
use <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">large_part</span></code>
|
|
and <code><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">sum</span><span class="special">::</span><span class="identifier">small_part</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Type alias <code><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce_option</span></code>:
|
|
use <code><span class="identifier">algorithm</span><span class="special">::</span><span class="identifier">reduce_command</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Template function <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">static_options</span></code>:
|
|
use <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">get_options</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Template function <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">static_is_inclusive</span></code>:
|
|
use <code><span class="identifier">axis</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_inclusive</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Type alias <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">range_iterator</span></code>:
|
|
use <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">iterator</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Type alias <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">accessor</span><span class="special">::</span><span class="identifier">reference</span></code>:
|
|
use <code><span class="identifier">indexed</span><span class="special">::</span><span class="identifier">accessor</span><span class="special">::</span><span class="identifier">const_reference</span></code>
|
|
</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>
|
|
For C++11 and later, added support for perfect forwarding of values
|
|
written to <code><span class="identifier">function_output_iterator</span></code>.
|
|
(<a href="https://github.com/boostorg/iterator/pull/73">PR#73</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added protection against writing to <code><span class="identifier">function_output_iterator</span></code>
|
|
a result of dereferencing another <code><span class="identifier">function_output_iterator</span></code>.
|
|
</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 non-const <code><span class="identifier">value</span><span class="special">::</span><span class="identifier">at</span></code>
|
|
overloads.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the ability to manually choose endianness of the platform.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">string</span><span class="special">::</span><span class="identifier">subview</span><span class="special">()</span></code>
|
|
overload.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed segfault in <code><span class="identifier">array</span><span class="special">::</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed low performance of <code><span class="identifier">serialize</span></code>
|
|
on libc++.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed ambigious conversion to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
|
on GCC 8.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed parsing on big-endian platforms.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed handling of comment after trailing comma.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
API breaking change: throw leaf::exception(....) now becomes leaf::throw_exception(....)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a bug in support for a rare build configuration (exception
|
|
handling enabled, diagnostics disabled)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Using nullptr instead of 0 throughout
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed pedantic warnings
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Deprecated support for C++03 and earlier, C++11 will be required
|
|
in the next release
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Provide <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code>
|
|
as a temporary replacement for <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code> which is incompatible
|
|
with Boost.Regex. <code><span class="special">-</span><span class="identifier">sICU_LINK_LOCALE</span></code> and <code><span class="special">-</span><span class="identifier">sICU_LINK</span></code>
|
|
are deprecated and will be replaced by <code><span class="identifier">ICU_</span><span class="special">*</span><span class="identifier">_NAME</span></code>
|
|
options to be compatible with Boost.Regex
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix UB/assertion failure in the ICU <code><span class="identifier">collator</span></code>
|
|
implementation when transforming empty strings
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix some issues related to visibility of classes in shared libraries
|
|
(Unix only)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix compatibility with C++20 mode
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix compatibility with <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix build failures due to missing includes
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Handle or suppress many warnings which makes the build log cleaner
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Bug fixes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed binding incorrect local address in UDP socket-based
|
|
<code><span class="identifier">syslog_backend</span></code>
|
|
when IPv6 address is used for the syslog server. (<a href="https://github.com/boostorg/log/issues/181">#181</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for a <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105857">bug</a>
|
|
in libstdc++ from gcc 11.2. When <code><span class="identifier">max_size_decor</span></code>
|
|
was used on a formatting stream, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">::</span><span class="identifier">do_length</span></code>
|
|
incorrectly accessed the input buffer and caused a buffer overflow.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See <a href="https://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a>
|
|
for more details.
|
|
</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>: from 2023
|
|
we will require C++14 as a minimum standard. This will mean GCC-5
|
|
or MSVC-14.1 as a minimal requirement.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add <code><span class="keyword">constexpr</span></code> fma support,
|
|
see <a href="https://github.com/boostorg/math/pull/734">734</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for the Chatterjee Correlation Coefficient, see <a href="https://github.com/boostorg/math/pull/770">770</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for the logarithm of the PDF for all the distributions.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve support for building with no exception or RTTI support.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Some minor bug fixes for [sub 1]F[sub 1] corner cases, see <a href="https://github.com/boostorg/math/pull/778">778</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<strong>Mark C++11 support as deprecated</strong>:
|
|
from 2023 we will move to requiring C++14 as a minimum standard level.
|
|
That will drop support for GCC versions prior to 5 and MSVC prior
|
|
to 14.1.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix conflict between <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">cstdfloat</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
and this library.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clean up lots of gcc and clang warnings.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix input streaming of composite types (complex, interval rational)
|
|
where there is a trailing delimeter in the stream and no whitespace.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix <code><span class="keyword">constexpr</span></code> integer
|
|
square root where the input is 1, 2 or 3.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add missing <code><span class="preprocessor">#include</span></code>
|
|
of <code><span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code> to float128.hpp.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Correct 2-arg constructor for class <code><span class="identifier">number</span></code>
|
|
to prevent ambiguity in some cases.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Correct and make more consistent behaviour of divide-by-zero in gmp.hpp.
|
|
</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>
|
|
Maintenance work.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Major performance improvement for Bulk I/O with files
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">basic_filebuf</span></code>: Fix
|
|
wrong return value of <code><span class="identifier">sync</span></code>
|
|
when <code><span class="identifier">fflush</span></code> failed
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">basic_filebuf</span></code>: Fix
|
|
possible undefined behavior in a corner case when nothing was actually
|
|
written but buffer is in "write" mode
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">basic_filebuf</span></code>: Limit
|
|
putback of characters (i.e. <code><span class="identifier">pbackfail</span></code>)
|
|
only allowing putback of buffered characters (may be only 1 character)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added specializations for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;&gt;</span></code>. This is a breaking change
|
|
for programs that define such specializations themselves. For more
|
|
details see <a href="https://www.boost.org/libs/optional/doc/html/boost_optional/reference/header__boost_optional_optional_hpp_/detailed_semantics___std__hash_specializations.html#reference_std_hash_spec">specs</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 <a href="https://github.com/boostorg/stl_interfaces/issues/53">#53</a>: "missing 'typename' prior to dependent
|
|
type name 'C::const_iterator'"
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix <a href="https://github.com/boostorg/stl_interfaces/issues/54">#54</a>: "Concept check fails on .data() of
|
|
a view on contiguous iterator_interface instantiations"
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
New additions to make it easy to write views and view adaptors that
|
|
work like, and interoperate with, the ones in the standard library:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Add workalikes for C++23's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bind_back</span><span class="special">()</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">range_adaptor_closure</span></code>
|
|
for pre-C++23 code.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add templates <code><span class="identifier">closure</span></code>
|
|
and <code><span class="identifier">adaptor</span></code>
|
|
to make writing view adaptors easier, following the examples
|
|
in <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2021/p2387r3.html">P2387</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
When an <code><span class="identifier">error_code</span></code>
|
|
is converted to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>
|
|
and then back to <code><span class="identifier">error_code</span></code>,
|
|
the original is now restored, if possible.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Reworked the conversion from <code><span class="identifier">error_category</span></code>
|
|
to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_category</span></code> to avoid the one-time
|
|
allocation that shows up on leak checkers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a constructor that allows replacing the source location of
|
|
an <code><span class="identifier">error_code</span></code>, and
|
|
a corresponding <code><span class="identifier">assign</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a converting constructor to <code><span class="identifier">result</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
|
Major update:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://www.boost.org/libs/unordered/doc/html/unordered.html#buckets_fast_closed_addressing_implementation">Refactor</a>
|
|
internal implementation to be dramatically faster
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Allow <code><span class="identifier">final</span></code> <code><span class="identifier">Hasher</span></code> and <code><span class="identifier">KeyEqual</span></code>
|
|
objects
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Update documentation, adding benchmark graphs and notes on the new
|
|
internal data structures
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
In <code><span class="identifier">string_view</span></code>/<code><span class="identifier">string_ref</span></code>, fixed <code><span class="identifier">max_size</span></code> returning incorrect value.
|
|
(<a href="https://github.com/boostorg/utility/issues/91">#91</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed <code><span class="keyword">noexcept</span></code> specifier
|
|
from <code><span class="identifier">string_view</span><span class="special">::</span><span class="identifier">compare</span></code>
|
|
as it may throw on some input arguments. (<a href="https://github.com/boostorg/utility/issues/94">#94</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
In <code><span class="identifier">string_view</span></code>/<code><span class="identifier">string_ref</span></code>, added support for calling
|
|
<code><span class="identifier">substr</span></code> with no arguments.
|
|
(<a href="https://github.com/boostorg/utility/issues/96">#96</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">string_view</span><span class="special">::</span><span class="identifier">contains</span></code>
|
|
methods that were introduced in C++23. (<a href="https://github.com/boostorg/utility/issues/93">#93</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
In <code><span class="identifier">string_view</span></code>, added
|
|
asserts in <code><span class="identifier">remove_prefix</span></code>/<code><span class="identifier">remove_suffix</span></code> methods to enforce
|
|
the precondition that the prefix/suffix length does not exceed the
|
|
string view size. The previous (undocumented) behavior of silently
|
|
clamping the prefix/suffix length is deprecated and will be removed
|
|
in a future release. (<a href="https://github.com/boostorg/utility/issues/92">#92</a>)
|
|
</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/24">#24</a>: Line numbers wrong after conditional section
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/160">#160</a>: one test fails with error C2660 and error C2440 under
|
|
msvc /permissive- mode
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/161">#161</a>: BOOST_WAVE_THROW_NAME_CTX does not result in a context
|
|
callback and always throws
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/162">#162</a>: When Boost headers are included in the preprocessed
|
|
translation unit, Wave fails in boost/integer.hpp(99)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_80_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_2">B2
|
|
version 4.9.2</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_80_0.compilers_tested">
|
|
<h3><span class="link">Compilers Tested</span></h3>
|
|
<p>
|
|
Boost's primary test compilers are:
|
|
</p>
|
|
<p>
|
|
Boost's primary test compilers are:
|
|
</p>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Linux:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.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
|
|
</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
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.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_80_0.acknowledgements">
|
|
<h3><span class="link">Acknowledgements</span></h3>
|
|
<p>
|
|
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
|
|
</p>
|
|
</div>
|
|
</description></item><item><title>Version 1.79.0</title><link>https://www.boost.org/users/history/version_1_79_0.html</link><guid>https://www.boost.org/users/history/version_1_79_0.html</guid><pubDate>Wed, 13 Apr 2022 14:22:59 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_79_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>
|
|
Boost.JSON <code><span class="identifier">array</span><span class="special">::</span><span class="identifier">erase</span></code> can segfault, see <a href="https://github.com/boostorg/json/issues/692">#692</a>.
|
|
<a href="https://www.boost.org/patches/1_79_0/0001-json-array-erase-relocate.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_79_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
No new libraries.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_79_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 <code><span class="identifier">bind_allocator</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">sync_all_on_write</span></code> flag.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added missing implementation of <code><span class="identifier">basic_file</span><span class="special">::</span><span class="identifier">release</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added per-operation cancellation support to signal sets.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Exposed <code><span class="identifier">recycling_allocator</span></code>
|
|
as part of the public interface.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added the <code><span class="identifier">nodiscard</span></code>
|
|
attribute to a number of functions.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added OpenSSL 3.0 compatibility.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for adopting an existing <code><span class="identifier">SSL</span><span class="special">*</span></code> into an <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>
|
|
Enabled <code><span class="identifier">executor_work_guard</span><span class="special">&lt;&gt;</span></code> in all build configurations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Enabled movable socket iostreams when using clang.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">bind_cancellation_slot</span></code>
|
|
and <code><span class="identifier">bind_executor</span></code>
|
|
compatibility with legacy completion tokens.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">associator</span></code>
|
|
specialisations for <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">append</span></code>
|
|
and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">prepend</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">associated_allocator</span></code>
|
|
primary template.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <tt>io_uring</tt> implementations of <code><span class="identifier">async_receive_from</span></code> for sockets
|
|
and <code><span class="identifier">write_some_at</span></code>
|
|
for files.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <tt>io_uring</tt> feature detection.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>'s
|
|
per-operation cancellation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed memory management in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>'s
|
|
type-erased completion handlers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed move <code><span class="keyword">operator</span><span class="special">=</span></code> implementation for <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">any_io_executor</span></code>
|
|
implementation to work when both <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>
|
|
and <code><span class="identifier">BOOST_ASIO_SEPARATE_COMPILATION</span></code>
|
|
are defined.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed implementation of <code><span class="identifier">basic_socket</span><span class="special">::</span><span class="identifier">at_mark</span><span class="special">()</span></code> when using the <code><span class="identifier">sockatmark</span><span class="special">()</span></code> system call.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed the recycling allocator to use the default alignment as the
|
|
minimum alignment for allocations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for apparent coroutine codegen bug with Apple's
|
|
clang.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, changed the file support to open files using the same
|
|
sharing mode as <code><span class="identifier">fopen</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Linux, fixed UNIX domain sockets implementation to correctly handle
|
|
<code><span class="identifier">EAGAIN</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed implementation of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_channel</span><span class="special">::</span><span class="identifier">reset</span><span class="special">()</span></code> and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_concurrent_channel</span><span class="special">::</span><span class="identifier">reset</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed potential undefined behaviour in the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed the <code><span class="identifier">co_spawn</span></code>
|
|
implementation to dispatch cancellation signals through the executor
|
|
in some circumstances.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed various header inclusion issues.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed various warnings.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
A number of documentation enhancements, including:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added an overview of Asio's asynchronous model.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Reworked reference and requirements documentation in terms
|
|
of asynchronous model.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated documentation for <code><span class="identifier">dispatch</span><span class="special">()</span></code>, <code><span class="identifier">post</span><span class="special">()</span></code>, and <code><span class="identifier">defer</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Documented per-operation cancellation for serial ports.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clarified the non-concurrency guarantees made for allocators.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Reverted the <code><span class="identifier">io_context</span></code>
|
|
reference documentation to use <code><span class="identifier">executor_work_guard</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added more detailed reference documentation to <code><span class="identifier">make_strand</span><span class="special">()</span></code>,
|
|
<code><span class="identifier">make_work_guard</span><span class="special">()</span></code>, <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v4</span></code>,
|
|
<code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">address_v6</span></code>, <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_channel</span></code>, and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">basic_concurrent_channel</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Re-arranged and extended the Overview documentation to cover
|
|
recently added features.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a C++11 example showing file descriptor passing over local
|
|
sockets.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added C++14 examples of wrapping callback-based APIs in asynchronous
|
|
operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Consult the <a href="https://www.boost.org/doc/libs/1_79_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/assert/">Assert</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">file_name</span><span class="special">()</span></code>
|
|
and <code><span class="identifier">source_location</span><span class="special">().</span><span class="identifier">function_name</span><span class="special">()</span></code> now return <code><span class="string">""</span></code>
|
|
instead of <code><span class="string">"(unknown)"</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a <code><span class="identifier">source_location</span></code>
|
|
constructor from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed <code><span class="identifier">BOOST_CURRENT_LOCATION</span></code>
|
|
to more closely match the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">current</span><span class="special">()</span></code>, such as being usable at top level
|
|
or as a default function argument.
|
|
</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 for Universal Windows Platform (UWP). (<a href="https://github.com/boostorg/atomic/issues/54">#54</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">BOOST_ATOMIC_NO_DARWIN_ULOCK</span></code>
|
|
configuration macro. The macro affects compilation on Darwin systems
|
|
and disables <code><span class="identifier">ulock</span></code>-based
|
|
implementation of waiting and notifying operations. This may be useful
|
|
to comply with Apple App Store requirements. (<a href="https://github.com/boostorg/atomic/issues/55">#55</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added missing include for file_body test.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed WebSocket handshake response on failure.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed open append mode for <code><span class="identifier">file_posix</span></code>
|
|
and <code><span class="identifier">file_win32</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed file open with append/append_existing flag on Windows
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed clang-cl UTF8 path handling for <code><span class="identifier">file_win32</span></code>
|
|
and <code><span class="identifier">file_stdio</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added ARM64 builds to drone CI.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed async_base documentation link.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added tests for file open in append/append_existing mode.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated CI to include gcc 11, clang 12, msvc 14.3.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added individual tests to CMake workflow.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
We'd love to know how you or your company use Beast, consider adding
|
|
an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies
|
|
and Individuals Using Beast</a> list.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release
|
|
Notes</a> for a complete list of 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>
|
|
Made <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pointer_traits</span></code> SFINAE friendly,
|
|
addressing LWG3545. (Glen Fernandes)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> that uses the
|
|
individual allocator access traits. This implementation supports
|
|
C++03 and above. (Glen Fernandes)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Updated the allocator access traits to support most of the C++11
|
|
allocator model in C++03. (Glen Fernandes)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> is deprecated and will be removed
|
|
in a future release. The header defines <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code>
|
|
template, which is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code>
|
|
in <code><span class="special">&lt;</span><span class="identifier">iterator</span><span class="special">&gt;</span></code> header. However, since <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> is itself deprecated in
|
|
C++17, users are advised to remove <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator</span></code>
|
|
or <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">iterator</span></code> use from their 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">verbose_terminate_handler</span></code>, a utility
|
|
function intended to be passed to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">set_terminate</span></code>
|
|
that prints information about the uncaught exception to <code><span class="identifier">stderr</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Enabled unions in <code><span class="identifier">BOOST_DESCRIBE_STRUCT</span></code>
|
|
and updated examples to check <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_union</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added example of defining a <code><span class="identifier">fmtlib</span></code>
|
|
class formatter.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added example of defining a <code><span class="identifier">fmtlib</span></code>
|
|
enum formatter.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added example of printing pointers to members.
|
|
</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>v3:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_extension</span></code>
|
|
now works in terms of <strong>v3</strong> definition
|
|
of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> rather than <strong>v4</strong>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compilation of path appending and concatenation operators with
|
|
arguments of types convertible to <code><span class="identifier">path</span></code>
|
|
or compatible string type. (<a href="https://github.com/boostorg/filesystem/issues/223">#223</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On POSIX systems that support <code><span class="identifier">fdopendir</span></code>
|
|
and <code><span class="identifier">O_NOFOLLOW</span></code> and
|
|
on Windows, <code><span class="identifier">remove_all</span></code>
|
|
is now protected against <a href="https://www.cve.org/CVERecord?id=CVE-2022-21658">CVE-2022-21658</a>.
|
|
The vulnerability is a race condition that allows a third party process
|
|
to replace a directory that is being concurrently processed by <code><span class="identifier">remove_all</span></code> with a directory symlink
|
|
and cause <code><span class="identifier">remove_all</span></code>
|
|
to follow the symlink and remove files in the linked directory instead
|
|
of removing the symlink itself. (<a href="https://github.com/boostorg/filesystem/issues/224">#224</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, in <code><span class="identifier">remove</span></code>
|
|
and <code><span class="identifier">remove_all</span></code> implementation,
|
|
use POSIX semantics for file removal, when supported by the OS (Windows
|
|
10 1709 and later). When POSIX semantics is supported, the file name
|
|
is removed from the filesystem namespace as soon as the file is marked
|
|
for deletion, even if it is still open and in use. With legacy Windows
|
|
semantics, the file name remains present in the the filesystem namespace
|
|
until the last file handle to the file is closed, which allows the
|
|
file marked for deletion to be opened and prevents creating new files
|
|
with the same name. (<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, <code><span class="identifier">remove</span></code>
|
|
and <code><span class="identifier">remove_all</span></code> now
|
|
support deleting read-only directories. Support for removing read-only
|
|
non-directory files was added previously.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, <code><span class="identifier">directory_iterator</span></code>
|
|
internal implementation has been reworked to better utilize modern
|
|
Windows APIs, which may improve performance while handling symlinks.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, initialize internal WinAPI function pointers early, if
|
|
possible, to allow Boost.Filesystem operations to be invoked in global
|
|
constructors. This is only supported on MSVC, GCC, Clang and compatible
|
|
compilers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, <code><span class="identifier">resize_file</span></code>
|
|
should no longer fail with an error if the file to be resized is
|
|
opened.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Disabled use of the <code><span class="identifier">statx</span></code>
|
|
syscall on Android prior to 11.0 (API version 30). The syscall is
|
|
blacklisted by seccomp and causes process termination in runtime.
|
|
(<a href="https://github.com/boostorg/filesystem/issues/229">#229</a>)
|
|
</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">string_file</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
header is deprecated and will be removed in a future release. The
|
|
header is no longer included by <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
by default. Users are advised to implement the functionality themselves
|
|
or migrate to other implementations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>Deprecated:</strong> Windows CE support is
|
|
deprecated and will be removed in a future release. Windows CE has
|
|
been untested for many years and is likely non-functional.
|
|
</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 change
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/977">PR#977</a> Rescaling is turned off by default. This avoids
|
|
many related bugs in set operations and buffer.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improvements
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/923">PR#923</a> Added algorithm closest_points for cartesian
|
|
point/geometry.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/939">PR#939</a> Added algorithm closest_points for other coordinate
|
|
systems and geometry combinations excl. boxes.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/961">PR#961</a> Added Web Mercator projection.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/966">PR#966</a> More efficient cartesian distance strategy
|
|
used in simplify.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Solved issues
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/956">#956</a> Result of simplify algorithm with incorrect
|
|
closure.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/962">#962</a> Runtime error in R-tree deserialization due
|
|
to load factor.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/971">#971</a> R-tree insertion time impacted by use of long
|
|
double on ARM platforms.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Bugfixes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/936">PR#936</a> Envelope of polygon containing pole.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/948">PR#948</a> Spherical and geographic envelope for near
|
|
meridian segments.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/974">PR#974</a> Spheroidal normalization utilities for NaN
|
|
coordinates.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Various fixes in set operations and buffer.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Optimized <code><span class="identifier">integer_log2</span></code>
|
|
implementation to use bit operations internally. This allows to employ
|
|
bit instructions available on most modern CPUs. (<a href="https://github.com/boostorg/integer/issues/31">#31</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/io/">IO</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">io</span><span class="special">::</span><span class="identifier">basic_nullbuf</span></code>, a null stream buffer,
|
|
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">basic_onullstream</span></code>, a null output
|
|
stream (Glen Fernandes).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
In <code><span class="identifier">counting_iterator</span></code>,
|
|
added support for built-in 128-bit integer types supported by gcc
|
|
and clang and compatible compilers on some target platforms.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Silenced gcc warnings about deprecated implicit copy assignment operator
|
|
in <code><span class="identifier">counting_iterator</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Standalone mode of the library is removed. Users who wish to continue
|
|
using standalone JSON can switch to <a href="https://github.com/CPPAlliance/standalone-json.git">the
|
|
C++ Alliance fork</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> overloads.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> to <code><span class="identifier">error_codes</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for JSON Pointer.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Naturally grow string during serialization.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Support for FreeRTOS and other embedded platforms
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved diagnostic information
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved configuration macros
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
BOOST_LEAF_CHECK using statement expressions under __GNUC__
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed symbol demangling bug
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
General changes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
In <code><span class="identifier">text_file_backend</span></code>,
|
|
added support for appending to a previously written log file,
|
|
when file rotation is used and log file names use file counters.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>Breaking change:</strong> The <code><span class="identifier">file_collector</span></code> interface
|
|
has changed:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">scan_for_files</span></code>
|
|
method returns a <code><span class="identifier">scan_result</span></code>
|
|
structure that contains information collected during
|
|
the scan;
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">is_in_storage</span></code>
|
|
method added for testing if a path refers to a file within
|
|
the target storage directory.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a new <code><span class="identifier">invoke_manip</span></code>
|
|
stream manipulator that can be used for injecting user's function
|
|
into a stream output expression.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Bug fixes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed file counter being set to zero if the user calls <code><span class="identifier">text_file_backend</span><span class="special">::</span><span class="identifier">scan_for_files</span></code> multiple times,
|
|
and the second and the following calls don't find any new files.
|
|
(<a href="https://github.com/boostorg/log/issues/179">#179</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See <a href="https://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a>
|
|
for more details.
|
|
</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>
|
|
Improved the efficiency of <code><span class="identifier">count</span></code>
|
|
operations in ranked indices from <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">)</span> <span class="special">+</span> <span class="identifier">count</span><span class="special">)</span></code>
|
|
to <code><span class="identifier">O</span><span class="special">(</span><span class="identifier">log</span><span class="special">(</span><span class="identifier">n</span><span class="special">))</span></code>.
|
|
Contributed by Damian Sawicki.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Maintenance work.
|
|
</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 compilation issues on some platforms (e.g. GCC 11 on MinGW-w64
|
|
and Cygwin)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix missing include when using <code><span class="identifier">BOOST_USE_WINDOWS_H</span></code>
|
|
and <code><span class="identifier">WIN32_LEAN_AND_MEAN</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add sanity check when using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat</span></code>
|
|
with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">stat_t</span></code>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed <a href="https://github.com/boostorg/optional/issues/98">issue
|
|
#98</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <a href="https://github.com/boostorg/optional/issues/92">issue
|
|
#92</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for <code><span class="identifier">BOOST_NO_IOSTREAM</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Now aligned storage uses <code><span class="keyword">unsigned</span>
|
|
<span class="keyword">char</span></code> rather than <code><span class="keyword">char</span></code> to avoid UB.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Now using cv-unqualified <code><span class="identifier">value_type</span></code>
|
|
with placement <code><span class="keyword">new</span></code> to
|
|
avoid UB.
|
|
</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.14.0
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add detection of LoongArch (from Zhang Na).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/qvm/">QVM</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added constexpr under C++17
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved single header distribution
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/smart_ptr/">Smart Pointers</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_allocator_pointer</span></code> to obtain
|
|
the Allocator pointer from the result of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocate_unique</span></code>
|
|
(Glen Fernandes).
|
|
</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 a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code> parameter to <code><span class="identifier">throw_exception_from_error</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">throw_exception_from_error</span></code>
|
|
overloads for <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">errc_t</span></code>,
|
|
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">errc</span></code>,
|
|
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">exception_ptr</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><span class="identifier">value</span></code> now automatically supplies
|
|
<code><span class="identifier">BOOST_CURRENT_LOCATION</span></code>
|
|
to <code><span class="identifier">throw_exception_from_error</span></code>
|
|
via a default argument.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added an <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">make_error_code</span></code> overload taking
|
|
a source location.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/throw_exception/">ThrowException</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">throw_with_location</span></code>, a more lightweight
|
|
alternative of <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code>
|
|
for programs that do not use Boost.Exception.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
All containers have been updated to support heterogeneous <code><span class="identifier">count</span></code>, <code><span class="identifier">equal_range</span></code>
|
|
and <code><span class="identifier">find</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
All containers now implement the member function <code><span class="identifier">contains</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">erase_if</span></code> has been
|
|
implemented for all containers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
All containers have been updated to support heterogeneous <code><span class="identifier">erase</span></code> and <code><span class="identifier">extract</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed behavior of <code><span class="identifier">reserve</span></code>
|
|
to eagerly allocate.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Various warning fixes in the test suite.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Update code to internally use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">allocator_traits</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Switch to Fibonacci hashing.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Update documentation to be written in AsciiDoc instead of QuickBook.
|
|
</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="keyword">operator</span><span class="special">&lt;&lt;</span></code>
|
|
for <code><span class="identifier">monostate</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
C++11 now required for building Wave itself
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed bugs:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/135">#135</a>: Comma operators in array subscripts are deprecated
|
|
in C++20
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/137">#137</a>: Simple unknown directive =&gt; found_unknown_directive
|
|
is not called, stripped of pound.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/138">#138</a>: Empty ifdef block does not emit line directive
|
|
for missing whitespace
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/143">#143</a>: Parsing __has_include() fails with trailing tokens
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/145">#145</a>: Sanitizer complains about reset_version()
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/wave/issues/147">#147</a>: bitwise operations between different enumeration
|
|
types are deprecated
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_79_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_8_2">B2
|
|
version 4.8.2</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_79_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
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++11: 3.4, 11.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
|
|
</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
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++20: 11.0.0, 12.0.0, 13.0.0
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC: 4.6.3, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++11: 4.7.3, 4.8.5, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++20: 8.0.1, 9.1.0, 10, 11
|
|
</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
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_79_0.acknowledgements">
|
|
<h3><span class="link">Acknowledgements</span></h3>
|
|
<p>
|
|
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
|
|
</p>
|
|
</div>
|
|
</description></item><item><title>Version 1.78.0</title><link>https://www.boost.org/users/history/version_1_78_0.html</link><guid>https://www.boost.org/users/history/version_1_78_0.html</guid><pubDate>Wed, 08 Dec 2021 03:45:49 +0000</pubDate><description>
|
|
|
|
|
|
<div id="version_1_78_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>
|
|
Boost.Build silently skips installation of library headers and binaries
|
|
in some cases, see <a href="https://github.com/bfgroup/b2/issues/104">#104</a>.
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed in <a href="https://github.com/bfgroup/b2/pull/113">PR#113</a>,
|
|
<a href="https://www.boost.org/patches/1_78_0/0001-b2-fix-install.patch">patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Boost.Atomic fails to build when targeting UWP, see <a href="https://github.com/boostorg/atomic/issues/54">#54</a>. <a href="https://www.boost.org/patches/1_78_0/0002-atomic-fix-uwp-build.patch">Patch</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_78_0.new_libraries">
|
|
<h3><span class="link">New Libraries</span></h3>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
No new libraries.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_78_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 an io_uring backend that may optionally be used for all I/O
|
|
objects, including sockets, timers, and posix descriptors.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for files, with new new classes for stream-oriented
|
|
and random-access files. This feature currently supports I/O completion
|
|
ports on Windows, and io_uring on Linux.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for portable pipes on POSIX and Windows (when I/O completion
|
|
ports are available).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for registered buffers, which are optimised when using
|
|
the io_uring backend.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added experimental support for channels, that may be used to send
|
|
and queue completions as messages.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Implemented improvements to <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Disabled <code><span class="identifier">aligned_alloc</span></code>
|
|
on <tt>clang</tt> when using an MSVC runtime.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Changed to use a faster implementation for <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">network_v4</span><span class="special">::</span><span class="identifier">canonical</span><span class="special">()</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added template specialisations for common uses to improve compile
|
|
time.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Reduced the size of <code><span class="identifier">io_context</span></code>
|
|
executors to a single pointer.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Increased the small object buffer size for <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span></code>
|
|
and <code><span class="identifier">any_io_executor</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed multi-signature handling when variadic templates are disabled.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compatibility with new versions of <tt>gcc</tt> and
|
|
<tt>clang</tt>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compilation on Solaris.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed defence against Qt-defined macros when building with MSVC.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved error messages emitted by <code><span class="identifier">ssl</span></code>
|
|
facilities.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed <code><span class="identifier">bind_executor</span></code>
|
|
compatibility with completion tokens.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed build errors when <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>
|
|
is defined.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added missing move assignment operator to <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed an access violation when using coroutines with MSVC, due to
|
|
incorrect alignment of allocated memory.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a cleanup issue in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code>
|
|
that occured when the execution context was shut down with parallel
|
|
operations still pending.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added clarifications to the documentation on concurrency hints.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added documentation on error handling techniques for C++20 coroutines.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed various warnings.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Consult the <a href="https://www.boost.org/doc/libs/1_78_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/assert/">Assert</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">to_string</span></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>
|
|
Use process-local futex operations on Android for non-IPC waiting
|
|
and notifying operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for Linux targets that only define <code><span class="identifier">SYS_futex_time64</span></code>
|
|
syscall, such as riscv32.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for incorrect result of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">alignment_of</span></code>
|
|
on clang 8 for 64-bit types on 32-bit x86 targets.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a ulock backend for waiting and notifying operations on Darwin
|
|
systems since Mac OS 10.12, iOS 10.0, tvOS 10.0 or watchOS 3.0.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, corrected discrepancy between <tt><em>atomic-type</em>::always_has_native_wait_notify</tt>
|
|
and the corresponding capability macros when targeting Windows 8
|
|
or later. The library will now directly use <code><span class="identifier">WaitOnAddress</span></code>
|
|
and related APIs from public headers and therefore require user to
|
|
link with <code><span class="identifier">synchronization</span><span class="special">.</span><span class="identifier">lib</span></code>
|
|
if the user requires Windows 8 or later by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>, <code><span class="identifier">_WIN32_WINNT</span></code> or similar macros.
|
|
The library is linked automatically on compilers that support auto-linking
|
|
(e.g. MSVC).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for types with padding bits, except unions, on compilers
|
|
that provide a way to clear the padding bits. This feature is supported
|
|
by gcc 11 and MSVC 14.2 (compiler version 19.27) and newer, as well
|
|
as other compilers supporting similar intrinsics. On compilers that
|
|
don't allow to clear the padding bits, types with padding are still
|
|
generally not supported with the exception of 80-bit <code><span class="keyword">long</span> <span class="keyword">double</span></code>
|
|
on x86 targets. A new <code><span class="identifier">BOOST_ATOMIC_NO_CLEAR_PADDING</span></code>
|
|
capability macro is defined to indicate when clearing the padding
|
|
is not supported.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Initializing constructors of <code><span class="identifier">atomic_ref</span></code>
|
|
and <code><span class="identifier">ipc_atomic_ref</span></code>
|
|
no longer use atomic instructions to clear the padding bits in the
|
|
referenced object. This reduces the cost of the atomic reference
|
|
construction.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Initializing constructors of <code><span class="identifier">atomic</span></code>
|
|
and <code><span class="identifier">ipc_atomic</span></code> are
|
|
now <code><span class="keyword">constexpr</span></code> for enums,
|
|
classes and floating point types. For classes and floating point
|
|
types, the constructors are <code><span class="keyword">constexpr</span></code>
|
|
if the compiler supports <code><span class="keyword">constexpr</span></code>
|
|
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bit_cast</span></code>, the type has no padding
|
|
bytes and no padding is required to implement native atomic operations.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
In accordance with C++20, default constructors of <code><span class="identifier">atomic</span></code>
|
|
and <code><span class="identifier">ipc_atomic</span></code> now
|
|
perform value initialization of the contained object. For types without
|
|
a user-defined default constructor, this means the default-constructed
|
|
atomic will be zero-initialized.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for compilation error on AIX caused by the assembler
|
|
tool not supporting numeric labels. (<a href="https://github.com/boostorg/atomic/pull/50">PR#50</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for compilation error with Visual Studio 2015
|
|
prior to Update 3. (<a href="https://github.com/boostorg/atomic/issues/52">#52</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See <a href="https://www.boost.org/doc/html/atomic/changelog.html">changelog</a>
|
|
for more 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>
|
|
This maintenance update brings minor bug fixes and updated CI reporting.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed security vulnerability CVE-2016-9840 in zlib implementation.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed WebSocket permessage_deflate implementation. This should result
|
|
in an increase in compression performance when using Beast WebSockets.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Removed the test stream and test framework's dependency on RTTI.
|
|
You can now use our handy test stream to check your embedded asynchronous
|
|
communications code!
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
We'd love to know how you or your company use Beast, consider adding
|
|
an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies
|
|
and Individuals Using Beast</a> list.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release
|
|
Notes</a> for a complete list of 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>
|
|
Added a generic implementation to <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>,
|
|
enabled when <code><span class="identifier">BOOST_CORE_USE_GENERIC_CMATH</span></code>
|
|
is defined or when the platform does not provide the necessary facilities
|
|
in <code><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</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">type_name</span></code>, a utility function that
|
|
returns the name of a type as a string.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code>, a C++11 implementation of
|
|
C++20's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> (Glen Fernandes).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">has_describe_enumerators</span></code>,
|
|
<code><span class="identifier">has_describe_bases</span></code>,
|
|
<code><span class="identifier">has_describe_members</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">enum_to_string</span></code>,
|
|
<code><span class="identifier">enum_from_string</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added relational and stream insertion operators.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">descriptor_by_name</span></code>,
|
|
<code><span class="identifier">descriptor_by_pointer</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 missing #include, thanks to Denis Blank (<a href="https://github.com/boostorg/dll/pull/54">PR#54</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Dropped TravisCI in favor of GithubAction CI
|
|
</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>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">filename</span></code>
|
|
and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">iterator</span></code> no longer return an implicit
|
|
trailing dot (".") element if the path ends with a directory
|
|
separator. Instead, an empty path is returned, similar to C++17 std::filesystem.
|
|
This also affects other methods that are defined in terms of iterators
|
|
or filename, such as <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code>,
|
|
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">compare</span></code> or <code><span class="identifier">lexicographical_compare</span></code>.
|
|
For example, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/"</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/."</span><span class="special">)</span></code>
|
|
no longer holds true. (<a href="https://github.com/boostorg/filesystem/issues/193">#193</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code>
|
|
no longer produce a trailing dot (".") element and omits
|
|
a directory separator after a trailing dot-dot ("..") element
|
|
in the normalized paths.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<strong>v4:</strong> <code><span class="identifier">path</span></code>
|
|
append operations now consider root name and root directory in the
|
|
appended path. If the appended path is absolute, or root name is
|
|
present and differs from the source path, the resulting path is equivalent
|
|
to the appended path. If root directory is present, the result is
|
|
the root directory and relative path rebased on top of the root name
|
|
of the source path. Otherwise, the behavior is similar to v3. (<a href="https://github.com/boostorg/filesystem/issues/214">#214</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> now converts directory
|
|
separators to preferred separators in the root name of the normalized
|
|
paths.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Optimized overloads of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">assign</span></code>,
|
|
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">append</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">concat</span></code>
|
|
and the corresponding operators to avoid unnecessary path copying
|
|
and reduce the amount of code redundancy.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On POSIX systems, fixed <code><span class="identifier">absolute</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">base</span><span class="special">)</span></code> returning a path with root name
|
|
<code><span class="identifier">base</span><span class="special">.</span><span class="identifier">root_name</span><span class="special">()</span></code>
|
|
if <code><span class="identifier">p</span></code> starts with
|
|
a root directory. In such a case <code><span class="identifier">p</span></code>
|
|
is already an absolute path and should be returned as is.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">create_directories</span></code>
|
|
no longer reports an error if the input path consists entirely of
|
|
dot (".") and dot-dot ("..") elements. The implementation
|
|
is no longer using recursion internally and therefore is better protected
|
|
from stack overflow on extremely long paths.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, <code><span class="identifier">remove</span></code>
|
|
now supports deleting read-only files. The operation will attempt
|
|
to reset the read-only attribute prior to removal. Note that this
|
|
introduces a possibility of the read-only attribute being left unset,
|
|
if the operation fails and the original value of the attribute fails
|
|
to be restored. This also affects <code><span class="identifier">remove_all</span></code>.
|
|
(<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">remove_all</span></code> now returns
|
|
<code><span class="keyword">static_cast</span><span class="special">&lt;</span>
|
|
<span class="identifier">uintmax_t</span> <span class="special">&gt;(-</span><span class="number">1</span><span class="special">)</span></code>
|
|
in case of error, similar to C++17 std::filesystem.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed a linking error about unresolved references to Boost.ContainerHash
|
|
functions when user's code includes <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
|
but not <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container_hash</span><span class="special">/</span><span class="identifier">hash</span><span class="special">.</span><span class="identifier">hpp</span></code> and the compiler is set to
|
|
preserve unused inline functions. (<a href="https://github.com/boostorg/filesystem/issues/215">#215</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for MSVC and compatible compilers eliminating
|
|
path globals cleanup in release builds. This could lead to a memory
|
|
leak if Boost.Filesystem shared library was repeatedly loaded and
|
|
unloaded in the process. (<a href="https://github.com/boostorg/filesystem/issues/217">#217</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/894">PR#894</a> Optimization and refactoring of rtree queries.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/913">PR#913</a> DynamicGeometry and GeometryCollection support
|
|
in various algorithms (undocumented for now).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/922">PR#922</a> DynamicGeometry and GeometryCollection support
|
|
in distance (undocumented for now).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Solved issues
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/867">#867</a> Poor performance of rtree query iterator with
|
|
nearest predicate for big k.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/870">#870</a> Compilation error in boost::geometry::self_turns.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/issues/896">#896</a> Assertion failure in get_turns with BOOST_GEOMETRY_NO_ROBUSTNESS.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Bugfixes
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/906">PR#906</a> Invalid result of buffer on macos-11 with
|
|
clang-12.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<a href="https://github.com/boostorg/geometry/pull/921">PR#921</a> Compilation errors with c++20 (various compilers)
|
|
and gcc-5.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Various fixes in set operations and buffer.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Standalone mode of the library is deprecated.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Allow external libraries to forward declare <code><span class="identifier">value_to</span></code>
|
|
and <code><span class="identifier">value_from</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed signed integer overflow in number parsing.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for <code><span class="special">/</span><span class="identifier">Zc</span><span class="special">:</span><span class="identifier">implicitNoexcept</span><span class="special">-</span></code> on MSVC.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/lambda2/">Lambda2</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added special cases in <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> and <code><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> when the first argument is
|
|
a stream, to allow <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span>
|
|
<span class="special">&lt;&lt;</span> <span class="identifier">_1</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="keyword">operator</span><span class="special">-&gt;*</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">first</span></code>, <code><span class="identifier">second</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
General changes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Updated detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span></code>
|
|
specializations for <code><span class="keyword">char16_t</span></code>
|
|
and <code><span class="keyword">char32_t</span></code> for
|
|
compatibility with C++17 and later. (<a href="https://github.com/boostorg/log/pull/159">PR#159</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byte</span></code>
|
|
type to receive methods of the inter-process message queue.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
On Windows, when building the library for Windows 8 or later,
|
|
the library will use <code><span class="identifier">nt62</span></code>
|
|
tag in the version namespace to denote the target OS ABI. For
|
|
example, the version namespace could be named as <code><span class="identifier">v2_mt_nt62</span></code>. This name will
|
|
be part of all symbols exported by the library. Use the <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>
|
|
macro consistenly when building Boost and your code to request
|
|
the minimum target Windows version.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improved performance of SSSE3 and AVX2 implementations of the
|
|
<code><span class="identifier">dump</span></code> stream
|
|
manipulator.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added support for CMake build system. Only library build is
|
|
supported at this moment, Boost.Build is still used for running
|
|
tests.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Bug fixes:
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Fixed a race condition on POSIX systems in <code><span class="identifier">reliable_message_queue</span><span class="special">::</span><span class="identifier">open_or_create</span></code>
|
|
or the equivalent constructor. Multiple threads or processes
|
|
calling <code><span class="identifier">open_or_create</span></code>
|
|
concurrently with sending or receiving messages from the same
|
|
queue could end up corrupting the queue contents and potentially
|
|
crashing the process. (<a href="https://github.com/boostorg/log/issues/162">#162</a>)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added a workaround for <code><span class="identifier">b2</span>
|
|
<span class="identifier">install</span></code> failing on
|
|
Windows because of missing <code><span class="identifier">boost_log_setup</span></code>
|
|
library if <code><span class="identifier">BOOST_LOG_WITHOUT_SETTINGS_PARSERS</span></code>
|
|
is defined. (<a href="https://github.com/boostorg/log/issues/164">#164</a>)
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
See <a href="https://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a>
|
|
for more details.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Add support for cubic roots.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for <code><span class="keyword">constexpr</span></code>
|
|
versions of various standard library math routines.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add support for Bezier polynomials.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve worst-case tanh-sinh integration performance.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Disable inadvertant use of integral types in integration routines.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Minor update for erf approximations when the result is with 2ulp
|
|
of 1.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Allow Bernoulli code to be used on platforms with no atomic integers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve the mode of the non-central Chi Squared distribution.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Improve certain edge cases for &lt;cstdfloat&gt; complex-valued elementary
|
|
functions, see <a href="https://github.com/boostorg/math/issues/507">#507</a>.
|
|
</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>
|
|
Added <code><span class="identifier">contains</span></code> to
|
|
key-based indices (issue <a href="https://github.com/boostorg/multi_index/issues/35">#35</a>).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">merge</span></code> operations
|
|
to key-based indices. The functionality goes beyond the standard
|
|
specification for (unordered) associative containers in a number
|
|
of ways, most notably:
|
|
</div>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
The source index can be of any type, including non key-based
|
|
indices.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Partial merge is provided: for instance, <code><span class="identifier">x</span><span class="special">.</span><span class="identifier">merge</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> merges only the elements of
|
|
<code><span class="identifier">y</span></code> within [<code><span class="identifier">first</span></code>,<code><span class="identifier">last</span></code>).
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Previous versions of <code><span class="identifier">splice</span></code>
|
|
for sequenced and random access indices were destructive, i.e. elements
|
|
were copy-inserted into the destination and then erased from the
|
|
source. Now, <code><span class="identifier">splice</span></code>
|
|
is based on node transfer much as <code><span class="identifier">merge</span></code>
|
|
in key-based indices, and has been similarly extended to accept source
|
|
indices of any type: in fact, <code><span class="identifier">splice</span></code>
|
|
can be regarded as a frontend to the same functionality provided
|
|
by <code><span class="identifier">merge</span></code> in key-based
|
|
indices. For reasons of backwards compatibility, the destructive
|
|
behavior of <code><span class="identifier">splice</span></code>
|
|
has been retained in the case that the source and destination containers
|
|
have unequal allocators.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
The fact has been documented that index iterator types do only depend
|
|
on <code><span class="identifier">node_type</span></code> and
|
|
the position of the index in its <code><span class="identifier">multi_index_container</span></code>,
|
|
(except for hashed indices, where uniqueness/non-uniqueness is also
|
|
a dependency). This has implications on the validity of iterators
|
|
to elements transferred by <code><span class="identifier">merge</span></code>
|
|
or <code><span class="identifier">splice</span></code>. This property
|
|
is a variant of what has been called <a href="https://wg21.link/n2980">SCARY
|
|
iterators</a> in the C++ standard mailing lists. SCARYness is
|
|
currently (August 2021) not mandated for standard containers.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Iterator SCARYness is now also preserved in <a href="https://www.boost.org/libs/multi_index/doc/tutorial/debug.html#safe_mode">safe
|
|
mode</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>
|
|
Rework rational_adaptor to remove dependency on Boost.Rational and
|
|
improve performance.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix issue with type_traits and clang, see <a href="https://github.com/boostorg/multiprecision/issues/383">#383</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed buggy Lehmer's GCD routine, see <a href="https://github.com/boostorg/multiprecision/issues/370">#370</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix mpc_complex constructors so that lossy conversions are explicit,
|
|
see <a href="https://github.com/boostorg/multiprecision/issues/363">#363</a>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Correct miscellaneous configuration issues (Intel intrinsic usage
|
|
and Apple clang).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Correct some iostream operators for unsigned char types.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Correct mpq_rational conversions to integer types, see <a href="https://github.com/boostorg/multiprecision/issues/342">#342</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>
|
|
Breaking Change: <code><span class="identifier">do_unshift</span></code>
|
|
for the UTF-32 specialization of <code><span class="identifier">utf8_codecvt</span></code>
|
|
now correctly returns <code><span class="identifier">noconv</span></code>
|
|
instead of <code><span class="identifier">ok</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Remove unnecessary branch in <code><span class="identifier">utf8_codecvt</span></code>
|
|
for UTF-16 output
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Suppress deprecation warnings in MSVC when using <code><span class="identifier">utf8_codecvt</span></code>
|
|
with unicode char types
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix possible double-free when setting a custom buffer (<code><span class="identifier">setbuf</span></code>) after <code><span class="identifier">filebuf</span></code>
|
|
already allocated an internal buffer
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Added missing <code><span class="preprocessor">#include</span>
|
|
<span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code> for inclusion of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">addressof</span></code>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed -Wzero-length-array warning when dealing with empty aggregates
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fixed compilation on msvc compilers &lt;= 1920 (thanks to Alexey
|
|
Romanov aka @alexey-romanov)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added basic CMakeLists.txt support (thanks to @pdimov aka Peter Dimov)
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Multiple improvements for docs, including links to https://github.com/apolukhin/pfr_non_boost
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added misc/strip_boost_namespace.sh script to remove <code><span class="identifier">boost</span><span class="special">::</span></code>
|
|
and <code><span class="identifier">BOOST_</span></code> prefixes
|
|
</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.13.1
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fix spelling of "epoch".
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Add missing parenthesis in sparc.h (from tkoecker).
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Update documentation to use Rouge code styling and Amber general
|
|
style.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
<strong>Breaking Change:</strong> Change \B to be
|
|
the opposite of \b as per Perl behaviour.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Change w32_regex_traits.hpp so that windows.h is no longer included.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Fxed fuzzing related issues <a href="https://github.com/boostorg/regex/issues/151">#151</a>,
|
|
<a href="https://github.com/boostorg/regex/issues/152">#152</a>,
|
|
<a href="https://github.com/boostorg/regex/issues/153">#153</a>,
|
|
<a href="https://github.com/boostorg/regex/issues/156">#156</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 source locations to <code><span class="identifier">error_code</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">to_string</span></code>,
|
|
<code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">to_string</span></code>, <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">what</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<code><span class="identifier">system_error</span><span class="special">::</span><span class="identifier">what</span><span class="special">()</span></code>
|
|
now contains the source location, if present.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span> <span class="special">=</span> <span class="identifier">error_code</span><span class="special">&gt;</span></code>,
|
|
a class holding either a value or an error, defined in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">result</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
<span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span>
|
|
<ul>
|
|
<li>
|
|
<div>
|
|
Library documentation converted to QuickBook (thanks to Alan de Freitas,
|
|
<a href="https://github.com/boostorg/utility/pull/79">PR#79</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="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">unsafe_get</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">&gt;</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="identifier">visit_by_index</span></code>.
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Added <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_78_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_7_2">B2
|
|
version 4.7.2</a>.
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_78_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
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++11: 3.4, 11.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
|
|
</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
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
Clang, C++20: 11.0.0, 12.0.0, 13.0.0
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC: 4.6.3, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++11: 4.7.3, 4.8.5, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11
|
|
</div>
|
|
</li>
|
|
<li>
|
|
<div>
|
|
GCC, C++20: 8.0.1, 9.1.0, 10, 11
|
|
</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
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
</li>
|
|
</ul>
|
|
</div>
|
|
<div id="version_1_78_0.acknowledgements">
|
|
<h3><span class="link">Acknowledgements</span></h3>
|
|
<p>
|
|
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
|
|
</p>
|
|
</div>
|
|
</description></item>
|
|
</channel>
|
|
</rss>
|