mirror of
https://github.com/boostorg/website.git
synced 2026-01-27 07:22:15 +00:00
8093 lines
394 KiB
XML
8093 lines
394 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.75.0</title><link>https://www.boost.org/users/history/version_1_75_0.html</link><guid>https://www.boost.org/users/history/version_1_75_0.html</guid><pubDate>Fri, 11 Dec 2020 19:50:02 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_75_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
Boost.Operators is currently <strong>incompatible with C++20</strong>
|
||
compilers, which in some cases may manifest as an infinite recursion or infinite
|
||
loop in runtime when a comparison operator is called. The problem is caused
|
||
by the new operator rewriting behavior introduced in C++20. As a workaround,
|
||
users are advised to target C++17 or older C++ standard. More details can be
|
||
found in <a href="https://github.com/boostorg/utility/issues/65">#65</a>.
|
||
</p>
|
||
</div>
|
||
<div id="version_1_75_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> JSON parsing, serialization,
|
||
and DOM in C++11, from Vinnie Falco and Krystian Stasiowski.
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fast compilation requiring only C++11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Easy and safe modern API with allocator support
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Compile without Boost, define <code><span class="identifier">BOOST_JSON_STANDALONE</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optional header-only, without linking to a library
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span> A lightweight error-handling
|
||
library for C++11, from Emil Dotchevski.
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Small single-header format, no dependencies.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Designed for maximum efficiency ("happy" path and "sad"
|
||
path).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
No dynamic memory allocations, even with heavy payloads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
O(1) transport of arbitrary error types (independent of call stack
|
||
depth).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Can be used with or without exception handling.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> Basic reflection without macro
|
||
or boilerplate code for user defined types, from Antony Polukhin.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_75_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>
|
||
Enabled support for UNIX domain sockets on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added executor-converting construction and assignment to <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added compatibility between polymorphic executors and the (deprecated)
|
||
handler invocation hook.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_single</span></code>
|
||
completion token adapter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">MSG_NOSIGNAL</span></code>
|
||
on more platforms by using <code><span class="identifier">_POSIX_VERSION</span></code>
|
||
to detect whether it is supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the ability to compile using libpthread on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added workarounds for the Intel C++ compiler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added more support for detecting and optimising for handlers that
|
||
have no custom executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduced lock contention for timer cancellation on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reinstated a previously removed null-pointer check, as it had a measurable
|
||
impact on performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">executor</span></code>
|
||
concept to test for a const-qualified <code><span class="identifier">execute</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">any_executor</span></code>
|
||
support for builds without RTTI support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">thread_pool</span></code>
|
||
unit test to work without RTTI support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed C++20 coroutines compatibility with clang on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some compatibility issues with Windows Runtime.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed shadow name warnings caused by addition of <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">query</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a "logical ‘or’ of equal expressions" warning
|
||
on linux.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a benign switch fallthrough warning.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="identifier">push</span><span class="special">/</span><span class="identifier">pop_options</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
includes.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Suppressed zero-as-null-pointer-constant warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a comma-operator warning.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated the documentation to clarify when the <tt>select</tt>
|
||
reactor is used on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed potential ambiguity caused by <code><span class="identifier">any_executor</span></code>
|
||
comparisons and conversion.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added detection of non-experimental C++20 coroutines on MSVC 19.8.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility with uClibc.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code>
|
||
adaptation of Networking TS executors when targeting older C++ versions
|
||
or less conformant compilers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_75_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>
|
||
Implemented SSE2 and SSE4.1 versions of address lookup algorithm,
|
||
which is used in the internal lock pool implementation. This may
|
||
improve performance of waiting and notifying operations in heavily
|
||
contended cases.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a possible compilation error on AArch64 targets caused by incorrect
|
||
instructions generated for bitwise (logical) operations with immediate
|
||
constants. (<a href="https://github.com/boostorg/atomic/issues/41">#41</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>
|
||
This update brings bug fixes and support for the <code><span class="identifier">BOOST_ASIO_ENBALE_HANDLER_TRACKING</span></code>
|
||
compile flag from Boost.Asio:
|
||
</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/container/">Container</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New <code>devector</code>
|
||
container.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs/issues:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/152">#152</a> Tree-based containers have troubles with move-only
|
||
types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/156">#156</a> Compile error with vector.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/157">PR#157</a> Add missing include.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/159">#159</a>: pmr::monotonic_buffer_resource crashes on
|
||
large single allocations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/160">#160</a>: Usage of uses_allocator needs a remove_cvref_t.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/162">#162</a>: small_vector on MSVC x86 call-by-value crash.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/161">#161</a>: polymorphic_allocator(memory_resource*) non-standard
|
||
extension causes headache.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/163">PR#163</a>: container_rebind for small_vector with
|
||
options.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/165">#165</a>: Link error with shared library and memory_resource
|
||
inline members.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/166">PR#166</a>: Fix encoding error in copyright headers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/167">PR#167</a>: error: the address of 'msg' will always
|
||
evaluate as 'true' warning with GCC 4.4.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/169">#169</a>: flood of warnings building dlmalloc_ext_2_8_6.c
|
||
on clang11.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">endian_arithmetic</span></code>
|
||
no longer inherits from <code><span class="identifier">endian_buffer</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
When <code><span class="identifier">BOOST_ENDIAN_NO_CTORS</span></code>
|
||
is defined, the unaligned <code><span class="identifier">endian_buffer</span></code>
|
||
and <code><span class="identifier">endian_arithmetic</span></code>
|
||
are C++03 PODs, to enable use of <code><span class="identifier">__attribute__</span><span class="special">((</span><span class="identifier">packed</span><span class="special">))</span></code>
|
||
</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>New:</strong> Added <code><span class="identifier">creation_time</span></code>
|
||
operation, which allows to obtain file creation time. (Inspired by
|
||
<a href="https://github.com/boostorg/filesystem/pull/134">PR#134</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The returned value of <code><span class="identifier">last_write_time</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">)</span></code> operation in case of failure has
|
||
been changed to a minimal value representable by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">time_t</span></code>
|
||
instead of -1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The returned value of <code><span class="identifier">hard_link_count</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">ec</span><span class="special">)</span></code> operation in case of failure has
|
||
been changed to <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> instead of 0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On POSIX systems, <code><span class="identifier">file_size</span></code>
|
||
will now indicate error code <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">function_not_supported</span></code>
|
||
if the path resolves to a non-regular file. Previously, <code><span class="identifier">errc</span><span class="special">::</span><span class="identifier">operation_not_permitted</span></code> was reported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Linux, many operations now use <code><span class="identifier">statx</span></code>
|
||
system call internally, when possible, which allows to reduce the
|
||
amount of information queried from the filesystem and potentially
|
||
improve performance. The <code><span class="identifier">statx</span></code>
|
||
system call was introduced in Linux kernel 4.11.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="keyword">const</span></code>-qualification
|
||
from return types of some <code><span class="identifier">path</span></code>
|
||
methods. This could prevent move construction and move assignment
|
||
at the call site in some cases. (<a href="https://github.com/boostorg/filesystem/issues/160">#160</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On OpenBSD 4.4 and newer, use <code><span class="identifier">statvfs</span></code>
|
||
system call to obtain filesystem space information. (Inspired by
|
||
<a href="https://github.com/boostorg/filesystem/pull/162">PR#162</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, <code><span class="identifier">space</span></code>
|
||
now returns with an error if the provided path does not idendify
|
||
an existing file. (<a href="https://github.com/boostorg/filesystem/issues/167">#167</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
BREAKING: In next release, we are going to drop support for GCC 5.
|
||
We may also change the required minimum C++ version from C++11 to
|
||
C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/histogram/">Histogram</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
This update brings
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Bug-fixes for corner-cases
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Small documentation improvements
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for new warnings from latest compilers and when compiling
|
||
against the C++20 standard
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See the full <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.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/interprocess/">Interprocess</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/127">#127</a>: static assertion failure with boost interprocess
|
||
1.74 and basic_managed_shared_memory.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/pull/48">PR#48</a>: MSVC "assignment within conditional"
|
||
warning fix.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/pull/49">PR#49</a>: Fix empty control statement warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/issues/52">#52</a>: Invalid casting in BOOST_INTRUSIVE_BSR_INTRINSIC.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</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>
|
||
Corrected the file counter that would be used in <code><span class="identifier">text_file_backend</span></code> when generating
|
||
the target file name (based on the pattern set by <code><span class="identifier">set_target_file_name_pattern</span></code>
|
||
method) when the log file is rotated. (<a href="https://github.com/boostorg/log/issues/125">#125</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced a volatile version counter in <code><span class="identifier">basic_sink_frontend</span></code>
|
||
with an atomic. (<a href="https://github.com/boostorg/log/issues/128">#128</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the <code><span class="identifier">asynchronous_sink</span></code>
|
||
frontend, resolved a possible conflict between <code><span class="identifier">flush</span></code> and <code><span class="identifier">run</span></code>
|
||
methods, if <code><span class="identifier">run</span></code>
|
||
is called from a user's thread instead of the internal dedicated
|
||
thread spawned by the frontend. (<a href="https://github.com/boostorg/log/issues/131">#131</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/move/">Move</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/move/issues/30">#30</a>: (void) C-cast is a non-portable way of suppressing
|
||
compiler warnings.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_pairwise_fold</span></code>
|
||
(suggested by Barry Revzin)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="identifier">mp_invoke</span></code>
|
||
(use <code><span class="identifier">mp_invoke_q</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>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none</span></code> is <code><span class="keyword">constexpr</span></code>-declared.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <a href="https://github.com/boostorg/optional/issues/78">issue
|
||
#78</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Announcements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
After a year and three major Boost releases announcing this
|
||
upcoming change, this is the FINAL RELEASE of the v2.1 branch.
|
||
From Boost 1.76 onwards, the v2.2 branch becomes the default.
|
||
This branch has a number of major breaking changes to Outcome
|
||
v2.1, see the documentation for details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The ADL discovered event hooks have been replaced with policy-specified
|
||
event hooks instead. This is due to brittleness (where hooks
|
||
would quietly self-disable if somebody changed something),
|
||
compiler bugs (a difference in compiler settings causes the
|
||
wrong hooks, or some but not all hooks, to get discovered),
|
||
and end user difficulty in using them at all. The policy-specified
|
||
event hooks can be told to default to ADL discovered hooks
|
||
for backwards compatibility: set <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code>
|
||
to less than <code><span class="number">220</span></code>
|
||
to enable emulation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve configuring <code><span class="identifier">OUTCOME_GCC6_CONCEPT_BOOL</span></code>.
|
||
Older GCCs had boolean based concepts syntax, whereas newer
|
||
GCCs are standards conforming. However the precise logic of
|
||
when to use legacy and conforming syntax was not well understood,
|
||
which caused Outcome to fail to compile depending on what options
|
||
you pass to GCC. The new logic always uses the legacy syntax
|
||
if on GCC 8 or older, otherwise we use conforming syntax if
|
||
and only if GCC is in C++ 20 mode or later. This hopefully
|
||
will resolve the corner case build failures on GCC.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Outcome should now compile with <code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code>
|
||
defined. Thanks to Emil, maintainer of Boost.Exception, making
|
||
a change for me, Boost.Outcome should now compile with C++
|
||
exceptions globally disabled. You won't be able to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception_ptr</span></code> as it can't
|
||
be included if C++ exceptions are globally disabled.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/236">#236</a>
|
||
In the Coroutine support the <code><span class="identifier">final_suspend</span><span class="special">()</span></code> was not <code><span class="keyword">noexcept</span></code>,
|
||
despite being required to be so in the C++ 20 standard. This
|
||
has been fixed, but only if your compiler implements <code><span class="identifier">noop_coroutine</span></code>. Additionally,
|
||
if <code><span class="identifier">noop_coroutine</span></code>
|
||
is available, we use the much more efficient coroutine handle
|
||
returning variant of <code><span class="identifier">await_suspend</span><span class="special">()</span></code> which should significantly
|
||
improve codegen and context switching performance.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/polygon/">Polygon</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
C++20 fixes for <code><span class="identifier">event_comparison_type</span></code>,
|
||
<code><span class="identifier">vertex_equality_predicate_type</span></code>,
|
||
and <code><span class="identifier">voronoi_predicates</span></code>.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
When variadic data is empty in C++20 mode with __VA_OPT__ support
|
||
the variadic size has been corrected to be 0. This also means that
|
||
in this C++20 mode it is now valid to convert to and from empty arrays
|
||
and lists and variadic data. The end-user can read the "C++20
|
||
Support For Variadic Macros" part of the "variadic macros"
|
||
topic for more information about empty variadic data in the library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The macro BOOST_PP_IS_STANDARD() has been added for identifying if
|
||
the currently used preprocessor is a C++ standard conforming preprocessor.
|
||
A number of preprocessors which generally work correctly with the
|
||
library but need various internal workarounds, including the currently
|
||
default VC++ preprocessor, are not considered C++ standard conforming
|
||
preprocessors. However most preprocessors, including among others
|
||
gcc, clang, and the new but currently non-default VC++ preprocessor
|
||
in VS2019, are C++ standard conforming preprocessors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For C++ standard conforming preprocessors a number of the limits
|
||
defined in the config/limits.hpp can now be changed to higher amounts
|
||
for a TU. The end-user should read the "limitations" topic
|
||
to understand how and which limits can be changed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For C++ standard conforming preprocessors, in order to allow the
|
||
maximum number of FOR and WHILE iterations, the beginning 'r' and
|
||
'd' iteration numbers in the user-defined macros start at 1 and not
|
||
2, as it did in previous releases. This could be a breaking change
|
||
if these iteration numbers are used in the user-defined macros (
|
||
they probably would not be ), but the change was necessary to fix
|
||
some arcane bugs when dealing with numerical/logical operations with
|
||
maximum numbers as well to allow the user-defined macros to be called
|
||
the correct possible maximum number of times. For non-C++ conforming
|
||
preprocessors, this change was not made because those non-conforming
|
||
C++ preprocessors generally have limitations which disallow the maximum
|
||
number of looping constructs to be run, and it was felt not to introduce
|
||
a possible breaking change to those more fragile preprocessors would
|
||
be better. It was also felt that besides fixing some arcane preprocessor
|
||
bugs and providing the possible maximum number of user-defined macro
|
||
invocations, this change could be made because it has never been
|
||
documented what the starting 'r' and 'd' iteration numbers actually
|
||
are but only that these numbers are incremented for each iteration.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library has been upgraded to assume variadic macro support for
|
||
any compiler working with the library. Ostensibly this means that
|
||
the library is now a C++11 on up library, yet most of the major compilers,
|
||
including gcc, clang, and VC++, also support variadic macros in C++98/C++03
|
||
mode as long as strict compliance to C++98/C++03 is not turned on
|
||
when using one of those compilers.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/rational/">Rational</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix Rational operators to not break under new C++20 <code><span class="keyword">operator</span><span class="special">==</span></code>
|
||
rewriting rules. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/signals2/">Signals2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct C++ allocator model support to fix compilation in C++20 standards
|
||
mode. (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>
|
||
The platform-specific headers <code><span class="identifier">windows_error</span><span class="special">.</span><span class="identifier">hpp</span></code>,
|
||
<code><span class="identifier">linux_error</span><span class="special">.</span><span class="identifier">hpp</span></code>, and <code><span class="identifier">cygwin_error</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
emit deprecation messages and are slated for removal.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The old names for <code><span class="identifier">generic_category</span><span class="special">()</span></code> and <code><span class="identifier">system_category</span><span class="special">()</span></code> emit deprecation messages and are
|
||
slated for removal.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">failed</span></code> is deprecated and is slated
|
||
for removal. <code><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span></code>
|
||
for <code><span class="identifier">error_condition</span></code>
|
||
has been reverted to its old meaning of <code><span class="identifier">value</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span></code>. This is done for compatibility with
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_condition</span></code> as the next release
|
||
is expected to improve interoperability with <code><span class="special">&lt;</span><span class="identifier">system_error</span><span class="special">&gt;</span></code>
|
||
even further. <em>Note that this does not
|
||
affect</em> <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">failed</span></code>,
|
||
which is still alive and well.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The overload of <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">message</span></code>
|
||
that takes a buffer is deprecated and is slated for removal, for
|
||
the same reasons. <em>Note that this does
|
||
not affect</em> <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">message</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/numeric/ublas/">uBLAS</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct C++ allocator model support to fix compilation in C++20 standards
|
||
mode. (Glen Fernandes and Conrad Poelman)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/vmd/">VMD</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The VMD number parsing has been upgraded to support the ability for
|
||
the end-user to change the number limits in the Preprocessor library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The macro BOOST_VMD_IS_GENERAL_IDENTIFIER has been added to support
|
||
the parsing of input that represents a preprocessor token which matches
|
||
the VMD identifier syntax, without having to register the identifier
|
||
as a specific identifier.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added new C++20 tokens, including the spaceship operator &lt;=&gt;
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/wave/issues/94">#94</a>: fix incorrect behavior of __LINE__ and __FILE__
|
||
under rescanning
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_75_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.0, 4.0.1, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0,
|
||
9.0.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0, 11.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Boost's additional test compilers include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_75_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.74.0</title><link>https://www.boost.org/users/history/version_1_74_0.html</link><guid>https://www.boost.org/users/history/version_1_74_0.html</guid><pubDate>Fri, 14 Aug 2020 05:02:54 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_74_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span> A library
|
||
of CRTP bases to ease the writing of STL views, iterators, and sequence
|
||
containers, from Zach Laine.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_74_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 implementation of the proposed standard executors (<a href="http://wg21.link/P0443r13">P0443r13</a>, <a href="http://wg21.link/P1348r0">P1348r0</a>,
|
||
and <a href="http://wg21.link/P1393r0">P1393r0</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for the proposed standard executors to Asio's I/O facilities.
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The supplied executors now meet the requirements for the proposed
|
||
standard executors. These classes also continue to meet the
|
||
existing requirements for the Networking TS model of executors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All I/O objects, asynchronous operations, and utilities will
|
||
interoperate with both new proposed standard executors, and
|
||
with existing Networking TS executors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">any_io_executor</span></code>
|
||
type alias has been introduced as the default runtime-polymorphic
|
||
executor for all I/O objects. This defaults to the <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span><span class="special">&lt;&gt;</span></code>
|
||
template. If required for backward compatibility, <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>
|
||
can be defined to use the old <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">executor</span></code>
|
||
polymorphic wrapper instead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for the existing Networking TS model of executors can
|
||
be disabled by defining <code><span class="identifier">BOOST_ASIO_NO_TS_EXECUTORS</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added converting move construction and assignment to <code><span class="identifier">basic_waitable_timer</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled C++20 coroutine support when using <tt>gcc</tt>
|
||
10.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added overloads of <code><span class="identifier">co_spawn</span></code>
|
||
that launch an awaitable.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new constructor overload to <code><span class="identifier">use_awaitable_t</span></code>'s
|
||
default executor adapter, to enable conversion between executor types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for using <code><span class="identifier">detached_t</span></code>
|
||
as a default completion token, by adding members <code><span class="identifier">as_default_on</span><span class="special">()</span></code> and <code><span class="identifier">as_default_on_t</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a move constructor to <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>
|
||
Changed <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">stream</span><span class="special">&lt;&gt;</span></code>
|
||
write operations to linearise gather-write buffer sequences.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added compile-time detection of the deprecated <code><span class="identifier">asio_handler_invoke</span></code>,
|
||
<code><span class="identifier">asio_handler_allocate</span></code>,
|
||
and <code><span class="identifier">asio_handler_deallocate</span></code>
|
||
hooks, when <code><span class="identifier">BOOST_ASIO_NO_DEPRECATED</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented a number of performance optimisations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added source location support to handler tracking.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented various improvements to the <tt>handlerviz.pl</tt>
|
||
tool.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <tt>handlerlive.pl</tt> tool, which processes
|
||
handler tracking output to produce a list of "live" handlers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <tt>handlertree.pl</tt> tool, which filters handler
|
||
tracking output to include only those events in the tree that produced
|
||
the nominated handlers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added changes for clang-based Embarcadero C++ compilers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a deadlock that can occur when multiple threads concurrently
|
||
initialise the Windows I/O completion port backend.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">async_compose</span></code>
|
||
to work with copyable handlers when passed by lvalue.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed completion signature deduction in <code><span class="identifier">co_spawn</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed a spurious <code><span class="identifier">Executor</span></code>
|
||
base class from the <code><span class="identifier">executor_binder</span></code>
|
||
implementation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes and improvements in the documentation and examples.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_74_0/doc/html/boost_asio/history.html">Revision
|
||
History</a> for further details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="keyword">const</span></code>
|
||
qualifiers to some operations in <code><span class="identifier">atomic_ref</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">yield</span></code>
|
||
instruction on ARMv8-A. The instruction is used internally in spin
|
||
loops to reduce CPU power consumption.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for C++20 <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_wait_notify_ops">waiting
|
||
and notifying operations</a>. The implementation includes generic
|
||
backend that involves the internal lock pool, as well as specialized
|
||
backends for Windows, Linux, FreeBSD, DragonFly BSD and NetBSD. Atomic
|
||
types provide a new method <code><span class="identifier">has_native_wait_notify</span></code>,
|
||
a static boolean constant <code><span class="identifier">always_has_native_wait_notify</span></code>
|
||
and a set of capability macros that allow to detect if the implementation
|
||
supports native waiting and notifying operations for a given type.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed internal representation of <code><span class="identifier">atomic_flag</span></code>
|
||
to use 32-bit storage. This allows for more efficient waiting and
|
||
notifying operations on <code><span class="identifier">atomic_flag</span></code>
|
||
on some platforms.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for build-time configuration of the internal lock pool
|
||
size. The user can define the <code><span class="identifier">BOOST_ATOMIC_LOCK_POOL_SIZE_LOG2</span></code>
|
||
macro to specify binary logarithm of the size of the lock pool. The
|
||
default value is 8, meaning that the size of the lock pool is 256,
|
||
up from 64 used in the previous release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for a new set of atomic types dedicated for <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_ipc">inter-process
|
||
communication</a>: <code><span class="identifier">ipc_atomic_flag</span></code>,
|
||
<code><span class="identifier">ipc_atomic</span></code> and <code><span class="identifier">ipc_atomic_ref</span></code>. Users are recommended
|
||
to port their code using non-IPC types for inter-process communication
|
||
to the new types. The new types provide the same set of operations
|
||
as their non-IPC counterparts, with the following differences:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Most operations have an added precondition that <code><span class="identifier">is_lock_free</span></code> returns <code><span class="keyword">true</span></code> for the given atomic object.
|
||
The library will issue a compile time error if this precondition
|
||
is known to be not satisfied at compile time.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
All provided operations are address-free, meaning that the
|
||
atomic object (in case of <code><span class="identifier">ipc_atomic_ref</span></code>
|
||
- the referenced object) may be located in process-shared memory
|
||
or mapped into the same process at multiple different addresses.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The new <code><span class="identifier">has_native_wait_notify</span></code>
|
||
operation and <code><span class="identifier">always_has_native_wait_notify</span></code>
|
||
constant indicate support for native inter-process waiting
|
||
and notifying operations. When that support is not present,
|
||
the operations are implemented with a busy loop, which is less
|
||
efficient, but still is address-free. A separate set of capability
|
||
macros is also provided to indicate this support.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added new <code><span class="identifier">atomic_unsigned_lock_free</span></code>
|
||
and <code><span class="identifier">atomic_signed_lock_free</span></code>
|
||
types introduced in C++20. The types indicate the atomic object type
|
||
for an unsigned or signed integer, respectively, that is lock-free
|
||
and preferably has native support for waiting and notifying operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added new gcc assembler backends for ARMv8-A (for both AArch32 and
|
||
AArch64). The new backends are used to implement operations not supported
|
||
by compiler intrinsics (including 128-bit operations on AArch64)
|
||
and can also be used when compiler intrinsics are not available.
|
||
Both little and big endian targets are supported. AArch64 backend
|
||
supports extensions defined in ARMv8.1 and ARMv8.3.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for big endian targets in the legacy ARM backend based
|
||
on gcc assembler blocks (this backend is used on ARMv7 and older
|
||
targets). Previously, the backend assumed little endian memory layout,
|
||
which is significant for 64-bit operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved performance of seq_cst stores and thread fences on x86 by
|
||
using <code><span class="identifier">lock</span></code>-prefixed
|
||
instructions instead of <code><span class="identifier">mfence</span></code>.
|
||
This means that the operations no longer affect non-temporal stores,
|
||
which was also not guaranteed before. Use specialized instructions
|
||
and intrinsics to order non-temporal memory accesses.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed capability macros for 80-bit <code><span class="keyword">long</span>
|
||
<span class="keyword">double</span></code> on x86 targets not
|
||
indicating lock-free operations even if 128-bit atomic operations
|
||
were available.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation of gcc asm blocks on Alpha targets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the gcc <code><span class="identifier">__sync</span><span class="special">*</span></code> intrinsics backend, fixed that store
|
||
and load operations of large objects (larger than a pointer size)
|
||
could be non-atomic. The implementation currently assumes that small
|
||
objects can be stored with a single instruction atomically on all
|
||
modern architectures.
|
||
</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 update brings bug fixes and support for the following changes
|
||
changes in Boost.Asio:
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Beast supports <code><span class="identifier">BOOST_ASIO_NO_DEPRECATED</span></code>.
|
||
Define this to help identify areas of your Beast and Asio code which
|
||
use deprecated Asio interfaces.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Beast also supports <code><span class="identifier">BOOST_ASIO_NO_TS_EXECUTORS</span></code>.
|
||
Define this to identify uses of executors from the now potentially
|
||
outdated <a href="https://cplusplus.github.io/networking-ts/draft.pdf">Networking
|
||
TS</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Asio will use the <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0443r11.html">Standard
|
||
Executors</a> model by default. You can prevent this behaviour
|
||
by defining <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>
|
||
in which the Networking TS model will be used by default. Setting
|
||
this flag does not prevent a program from using executors from the
|
||
Standard Executors model explicitly.
|
||
</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/bimap/">Bimap</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct allocator usage (fixes C++20 compilation). (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/config/">Config</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implement <code><span class="identifier">BOOST_NO_CXX11_OVERRIDE</span></code>
|
||
and <code><span class="identifier">BOOST_OVERRIDE</span></code>.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implemented the allocator access utilities which provide a replacement
|
||
for <code><span class="identifier">allocator_traits</span></code>
|
||
with individual traits and functions for each facility. They support
|
||
the C++11 allocator model when possible and provide a fallback for
|
||
C++98 compatibility. These are now used in Circular_Buffer, Wave,
|
||
Lockfree, Heap, Smart_Ptr, Dynamic_Bitset, Format, Bimap and more.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Multiple fixes for the <code><span class="identifier">library_info</span></code>
|
||
work on empty shared objects.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Compilation fixes for C++98 and C++11 modes (<a href="https://github.com/boostorg/dll/issues/28">#28</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for <code><span class="identifier">smart_library</span></code>
|
||
manglings (thanks to XiaLiChao82 <a href="https://github.com/boostorg/dll/issues/37">#37</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Enabled scoped enumeration types in <code><span class="identifier">endian_reverse</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled <code><span class="keyword">bool</span></code>, <code><span class="keyword">enum</span></code>, <code><span class="keyword">float</span></code>,
|
||
<code><span class="keyword">double</span></code> in <code><span class="identifier">endian_reverse_inplace</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added an overload of <code><span class="identifier">endian_reverse_inplace</span></code>
|
||
for arrays.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed compile-time checks for support for symlinks and hardlink
|
||
on Windows. Instead, a runtime check is used. (<a href="https://github.com/boostorg/filesystem/pull/142">PR#142</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed handling of reparse points in <code><span class="identifier">canonical</span></code>
|
||
and <code><span class="identifier">read_symlink</span></code>
|
||
on Windows. This also affects other algorithms that involve <code><span class="identifier">canonical</span></code> and <code><span class="identifier">read_symlink</span></code>
|
||
in their implementation. (<a href="https://github.com/boostorg/filesystem/pull/100">PR#100</a>, <a href="https://github.com/boostorg/filesystem/issues/85">#85</a>, <a href="https://github.com/boostorg/filesystem/issues/99">#99</a>,
|
||
<a href="https://github.com/boostorg/filesystem/issues/123">#123</a>, <a href="https://github.com/boostorg/filesystem/issues/125">#125</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that <code><span class="identifier">read_symlink</span></code>
|
||
on Windows could potentially fail or cause failures elsewhere with
|
||
a sharing violation error, if the same symlink was opened concurrently.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/138">#138</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that <code><span class="identifier">is_symlink</span><span class="special">(</span><span class="identifier">directory_entry</span><span class="special">)</span></code> would always return <code><span class="keyword">false</span></code>, even if the directory entry
|
||
actually referred to a symlink. (<a href="https://github.com/boostorg/filesystem/pull/148">PR#148</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing status inspection operation overloads for <code><span class="identifier">directory_entry</span></code> and <code><span class="identifier">error_code</span></code> (e.g. <code><span class="identifier">is_directory</span><span class="special">(</span><span class="identifier">directory_entry</span><span class="special">,</span>
|
||
<span class="identifier">error_code</span><span class="special">&amp;)</span></code>).
|
||
Removed incorrect <code><span class="keyword">noexcept</span></code>
|
||
specifications for the overloads not taking the <code><span class="identifier">error_code</span></code>
|
||
arguments.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">copy_file</span></code> implementation
|
||
has been updated to perform checks on the source and target files,
|
||
as required by C++20 ([fs.op.copy.file]/4.1). In particular, the
|
||
operation will fail if the source or target file is not a regular
|
||
file or the source and target paths identify the same file.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">copy_file</span></code> on POSIX
|
||
systems will now also copy the source file permissions to the target
|
||
file, if the target file is overwritten.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">copy_file</span></code>
|
||
implementations based on <code><span class="identifier">sendfile</span></code>
|
||
and <code><span class="identifier">copy_file_range</span></code>
|
||
system calls on Linux, which may improve file copying performance,
|
||
especially on network filesystems.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> The <code><span class="identifier">copy_option</span></code>
|
||
enumeration that is used with the <code><span class="identifier">copy_file</span></code>
|
||
operation is deprecated. As a replacement, the new enum <code><span class="identifier">copy_options</span></code> (note the trailing
|
||
's') has been added. The new enum contains values similar to the
|
||
<code><span class="identifier">copy_options</span></code> enum
|
||
from C++20. The old enum values are mapped onto the new enum. The
|
||
old enum will be removed in a future release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">skip_existing</span></code>
|
||
option, which allows <code><span class="identifier">copy_file</span></code>
|
||
operation to succeed without overwriting the target file, if it exists.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">update_existing</span></code>
|
||
option, which allows <code><span class="identifier">copy_file</span></code>
|
||
operation to conditionally overwrite the target file, if it exists,
|
||
if its last write time is older than that of the replacement file.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> <code><span class="identifier">copy_file</span></code>
|
||
now returns <code><span class="keyword">bool</span></code>, which
|
||
indicates whether the file was copied.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New, breaking change:</strong> <code><span class="identifier">copy</span></code> operation has been extended
|
||
and reworked to implement behavior specified in C++20 [fs.op.copy].
|
||
This includes support for <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">recursive</span></code>,
|
||
<code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">copy_symlinks</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">skip_symlinks</span></code>,
|
||
<code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">directories_only</span></code>, <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">create_symlinks</span></code> and <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">create_hard_links</span></code> options. The
|
||
operation performs additional checks based on the specified options.
|
||
Applying <code><span class="identifier">copy</span></code> to
|
||
a directory with default <code><span class="identifier">copy_options</span></code>
|
||
will now also copy files residing in that directory (but not nested
|
||
directories or files in those directories).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">create_directory</span></code>
|
||
overload taking two paths. The second path is a path to an existing
|
||
directory, which is used as a source of permission attributes to
|
||
use in the directory to create.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> <code><span class="identifier">copy_directory</span></code>
|
||
operation has been deprecated in favor of the new <code><span class="identifier">create_directory</span></code>
|
||
overload. Note that the two operations have reversed order of the
|
||
path arguments.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">equivalent</span></code> on POSIX
|
||
systems now returns the actual error code from the OS if one of the
|
||
paths does not resolve to a file. Previously the function would return
|
||
an error code of 1. (<a href="https://github.com/boostorg/filesystem/issues/141">#141</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">equivalent</span></code> no longer
|
||
considers file size and last modification time in order to test whether
|
||
the two paths refer to the same file. These checks could result in
|
||
a false negative if the file was modified during the <code><span class="identifier">equivalent</span></code> call.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">absolute</span></code>
|
||
overloads taking <code><span class="identifier">error_code</span></code>
|
||
argument.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Operations that have <code><span class="identifier">current_path</span><span class="special">()</span></code> as the default value of their arguments
|
||
and also have an <code><span class="identifier">error_code</span></code>
|
||
argument will use the <code><span class="identifier">current_path</span><span class="special">(</span><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span><span class="special">)</span></code> overload to obtain the current path,
|
||
so that its failure is reported via the <code><span class="identifier">error_code</span></code>
|
||
argument instead of an exception.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">space</span></code> now initializes
|
||
the <code><span class="identifier">space_info</span></code> structure
|
||
members to -1 values on error, as required by C++20 ([fs.op.space]/1).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">space</span></code> on Windows
|
||
now accepts paths referring to arbitrary files, not only directories.
|
||
This is similar to POSIX systems and corresponds to the operation
|
||
description in C++20. (<a href="https://github.com/boostorg/filesystem/issues/73">#73</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added implementation of <code><span class="identifier">temp_directory_path</span></code> for Windows
|
||
CE. (<a href="https://github.com/boostorg/filesystem/pull/25">PR#25</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Improved compatibility with
|
||
<a href="https://wasi.dev/">WASI</a> platform. (<a href="https://github.com/boostorg/filesystem/pull/144">PR#144</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Improved support for Embarcadero
|
||
compilers. (<a href="https://github.com/boostorg/filesystem/pull/130">PR#130</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added implementations of <code><span class="identifier">unique_path</span></code> operation based on
|
||
<code><span class="identifier">getrandom</span></code> (Linux),
|
||
<code><span class="identifier">arc4random_buf</span></code> (OpenBSD/FreeBSD/CloudABI)
|
||
and BCrypt (Windows) system APIs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> Auto-linking against
|
||
system libraries on Windows with MSVC-compatible compilers is deprecated
|
||
and will be removed in a future release. This affects users linking
|
||
against static library of Boost.Filesystem. Users are advised to
|
||
update their project build systems to either use a shared library
|
||
of Boost.Filesystem, or explicitly specify the dependencies of Boost.Filesystem
|
||
in the linker command line. Users of shared library of Boost.Filesystem
|
||
are not affected.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/format/">Format</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct allocator usage (fixes C++20 compilation). (Glen Fernandes)
|
||
</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/720">PR#720</a> Additional R-tree constructors (thanks to
|
||
Caian Benedicto).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various improvements in buffer, set and relational operations.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/709">#709</a> memcpy called for object with no trivial copy-assignment.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/721">#721</a> Compilation error in bgi::detail::rtree::visitors::insert.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/727">#727</a> MSVC warning: conditional expression is constant.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/700">PR#700</a> Missing cases for default strategies in distance
|
||
algorithm.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/738">PR#738</a> Longitudes out of range in direct geodesic
|
||
formulas.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added new constructor initializing <code><span class="identifier">any_image</span></code>
|
||
from r-value reference to any image (<a href="https://github.com/boostorg/gil/pull/486">PR#486</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented mechanism to reverse <code><span class="identifier">kernel_2d</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/489">PR#489</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
BREAKING: Replace Boost.Variant with Boost.Variant2 (<a href="https://github.com/boostorg/gil/pull/474">PR#474</a>)
|
||
which completes removal on uses of Boost.MPL (missing from
|
||
Boost 1.72.0 change added <a href="https://github.com/boostorg/gil/pull/274">PR#274</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use perfect forwarding from apply_operation to visit (<a href="https://github.com/boostorg/gil/pull/491">PR#491</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
BREAKING: Removed dependency on Boost.Variant
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed invalid conversion from RGB8 to CMYK32 due to overflow
|
||
(<a href="https://github.com/boostorg/gil/pull/470">PR#470</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">image</span></code>
|
||
constructor from other image (<a href="https://github.com/boostorg/gil/pull/477">PR#477</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed error <code><span class="identifier">plane_view_t</span></code>
|
||
is not a class or namespace name (<a href="https://github.com/boostorg/gil/pull/481">PR#481</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">interleaved_view</span></code>
|
||
factory using <code><span class="identifier">point</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">ptrdiff_t</span><span class="special">&gt;</span></code> for dimension (<a href="https://github.com/boostorg/gil/pull/487">PR#487</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed documentation replacing uses MPL with MP11 in tutorial
|
||
(<a href="https://github.com/boostorg/gil/pull/494">PR#494</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed missing header in <code><span class="identifier">numeric</span><span class="special">/</span><span class="identifier">kernel</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
to make it self-contained (<a href="https://github.com/boostorg/gil/pull/502">PR#502</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Samuel Debionne, Pranam Lashkari, Mateusz Loskot, Debabrata
|
||
Mandal
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/heap/">Heap</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct destruction of top node in <code><span class="identifier">skew_heap</span></code>.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct and simplify allocator use. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/integer/">Integer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation of <code><span class="identifier">gcd</span></code>
|
||
in C++20 mode with clang 10.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for Embarcadero compilers. (<a href="https://github.com/boostorg/integer/pull/21">PR#21</a>)
|
||
</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">boost</span><span class="special">/</span><span class="identifier">function_output_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> header is now deprecated. Users
|
||
should replace its inclusion with <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span><span class="special">/</span><span class="identifier">function_output_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
(<a href="https://github.com/boostorg/iterator/pull/51">PR#51</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for Embarcadero compilers. (<a href="https://github.com/boostorg/iterator/pull/55">PR#55</a>)
|
||
</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 warnings on missing <code><span class="identifier">override</span></code>
|
||
(thanks to EugeneZelenko <a href="https://github.com/boostorg/lexical_cast/issues/35">#35</a>, <a href="https://github.com/boostorg/lexical_cast/issues/34">#34</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for the the Embarcadero compilers (thanks to Edward Diener).
|
||
</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>
|
||
The syslog sink backend now verifies the IP version of the
|
||
local and target addresses set by user. The addresses must
|
||
have the same IP version as was specified in the <code><span class="identifier">ip_version</span></code> named parameter
|
||
on the sink backend construction (by default, IPv4 is assumed).
|
||
When an address is obtained as a result of host name resolution,
|
||
only addresses with matching IP version are considered. (<a href="https://github.com/boostorg/log/issues/119">#119</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New Features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Move constructors and assignment operators of various components
|
||
were marked <code><span class="keyword">noexcept</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new <code><span class="identifier">range_manip</span></code>
|
||
stream manipulator that can be used for outputting elements
|
||
of a range, optionally separated by a delimiter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new <code><span class="identifier">tuple_manip</span></code>
|
||
stream manipulator that can be used for outputting elements
|
||
of a tuple or any other heterogeneous sequence, optionally
|
||
separated by a delimiter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a new <code><span class="identifier">optional_manip</span></code>
|
||
stream manipulator that can be used for outputting optionally
|
||
present values.
|
||
</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/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved compilation performance of <code><span class="identifier">mp_with_index</span><span class="special">&lt;</span><span class="identifier">N</span><span class="special">&gt;</span></code> for large <code><span class="identifier">N</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">tuple_transform</span></code>
|
||
(contributed by Hans Dembinski.)
|
||
</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 <a href="https://www.boost.org/libs/multi_index/doc/tutorial/basics.html#node_handling">node
|
||
extraction and insertion</a> following the analogous interface
|
||
of associative containers as introduced in C++17. This feature has
|
||
also been extended to non key-based indices, in contrast to C++ standard
|
||
library sequence containers, which do not provide such functionality.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clarified documentation on read/write key extractors (issue <a href="https://github.com/boostorg/multi_index/issues/32">#32</a>).
|
||
</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>
|
||
The library now requires a C++11-compliant compiler and stdlib
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
LFS: Add support for files &gt; 2 GB where the underlying system
|
||
supports it
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Generic UTF conversion functions are now available in the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">nowide</span><span class="special">::</span><span class="identifier">utf</span> <span class="keyword">namespace</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add support for <code><span class="identifier">stat</span></code>
|
||
with UTF-8 paths
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Announcements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The v2.1 branch is expected to be retired end of 2020, with
|
||
the v2.2 branch becoming the default. You can use the future
|
||
v2.2 branch now using <a href="https://github.com/ned14/outcome/tree/better_optimisation"><code><span class="identifier">better_optimisation</span></code></a>.
|
||
This branch has a number of major breaking changes to Outcome
|
||
v2.1, see the front page for details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
BREAKING CHANGE <code><span class="keyword">void</span></code>
|
||
results and outcomes no longer default construct types during
|
||
explicit construction. Previously if you explicitly constructed
|
||
a <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
from a non-errored <code><span class="identifier">result</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code>, it default constructed
|
||
<code><span class="identifier">T</span></code>. This was
|
||
found to cause unhelpful surprise, so it has been disabled.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New macro <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code>.
|
||
The macro <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code>
|
||
can be used to enable aliasing of older naming and features
|
||
to newer naming and features when using a newer version of
|
||
Outcome.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Concepts now have snake case style naming instead of camel
|
||
case style. When Outcome was first implemented, it was thought
|
||
that C++ 20 concepts were going to have camel case style. This
|
||
was changed before the C++ 20 release, and Outcome's concepts
|
||
have been renamed similarly. This won't break any code in Outcome
|
||
v2.1, as compatibility aliases are provided. However code compiled
|
||
against Outcome v2.2 will need to be upgraded, unless <code><span class="identifier">OUTCOME_ENABLE_LEGACY_SUPPORT_FOR</span></code>
|
||
is set to <code><span class="number">210</span></code> or
|
||
lower.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Concepts now live in <code><span class="identifier">OUTCOME_V2_NAMESPACE</span><span class="special">::</span><span class="identifier">concepts</span></code>
|
||
namespace. Previously concepts lived in the <code><span class="identifier">convert</span></code>
|
||
namespace, now they live in their own namespace.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New concepts <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">basic_outcome</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> added. End users were finding
|
||
an unhelpful gap in between <code><span class="identifier">is_basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">value_or_error</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> where they wanted a concept
|
||
that matched types which were <code><span class="identifier">basic_result</span></code>,
|
||
but not exactly one of those. Concepts filling that gap were
|
||
added.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Operation <code><span class="identifier">TRY</span></code>
|
||
works differently from Outcome v2.2 onwards. This is a severely
|
||
code breaking change which change the syntax of how one uses
|
||
<code><span class="identifier">OUTCOME_TRY</span><span class="special">()</span></code>. A regular expression suitable
|
||
for upgrading code can be found in the list of changes between
|
||
Outcome v2.1 and v2.2.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/224">#224</a>
|
||
The clang Apple ships in Xcode 11.4 (currently the latest)
|
||
has not been patched with the fixes to LLVM clang that fix
|
||
<code><span class="keyword">noexcept</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_constructible</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span>
|
||
<span class="keyword">void</span><span class="special">&gt;)</span></code>
|
||
failing to compile which I originally submitted years ago.
|
||
So give up waiting on Apple to fix their clang, add a workaround
|
||
to Outcome.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Spare storage could not be used from within no-value policy
|
||
classes. Due to an obvious brain fart when writing the code
|
||
at the time, the spare storage APIs had the wrong prototype
|
||
which prevented them working from within policy classes. Sorry.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed internal ambiguity problem between <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">type_erasure</span><span class="special">::</span><span class="identifier">any</span></code>
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> (issue <a href="https://github.com/boostorg/poly_collection/issues/17">#17</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">owner_equals</span></code>
|
||
to <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">weak_ptr</span></code>, <code><span class="identifier">local_shared_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">owner_hash_value</span></code>
|
||
to <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">weak_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">owner_equal_to</span></code>,
|
||
<code><span class="identifier">owner_hash</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specializations for <code><span class="identifier">shared_ptr</span></code>, <code><span class="identifier">local_shared_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> support to, and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">equal_to</span></code>
|
||
specializations for, <code><span class="identifier">weak_ptr</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a build error when compiled with <code><span class="special">-</span><span class="identifier">fno</span><span class="special">-</span><span class="identifier">exceptions</span></code> (thanks to Jeremiah
|
||
Rodriguez <a href="https://github.com/boostorg/stacktrace/issues/91">#91</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>
|
||
<code><span class="keyword">operator</span> <span class="keyword">bool</span><span class="special">()</span></code> now returns <code><span class="identifier">failed</span><span class="special">()</span></code> instead of <code><span class="identifier">value</span><span class="special">()</span> <span class="special">!=</span> <span class="number">0</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/type_traits/">Type_Traits</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implemented <code><span class="identifier">conjunction</span></code>,
|
||
<code><span class="identifier">disjunction</span></code>, <code><span class="identifier">negation</span></code>, <code><span class="identifier">is_trivially_copyable</span></code>,
|
||
<code><span class="identifier">is_scoped_enum</span></code>, and
|
||
<code><span class="identifier">is_unscoped_enum</span></code>.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed warnings on missing <code><span class="identifier">override</span></code>
|
||
(thanks to EugeneZelenko <a href="https://github.com/boostorg/variant/issues/78">#78</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for the the Embarcadero compilers (thanks to Edward Diener
|
||
<a href="https://github.com/boostorg/variant/issues/79">#79</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated header locations to avoid warnings about using deprecated
|
||
headers (thanks to Andrey Semashev <a href="https://github.com/boostorg/variant/issues/80">#80</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 derived types in <code><span class="identifier">visit</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved compilation performance for many (hundreds of) alternatives.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">visit</span><span class="special">&lt;</span><span class="identifier">R</span><span class="special">&gt;</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>
|
||
Implement C++20 features for variadics, including <code><span class="identifier">__VA_OPT__</span></code>
|
||
(<a href="https://github.com/boostorg/wave/pull/75">PR#75</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implement <code><span class="identifier">__has_include</span></code>
|
||
(<a href="https://github.com/boostorg/wave/pull/102">PR#102</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Introduce new sample: <code><span class="identifier">check_macro_naming</span></code>,
|
||
useful with Boost itself (<a href="https://github.com/boostorg/wave/pull/97">PR#97</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix compilation issue caused by <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code>
|
||
member removal in C++20 (<a href="https://github.com/boostorg/wave/pull/72">PR#72</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Repair Xpressive lexer and <code><span class="identifier">token_statistics</span></code>
|
||
sample (<a href="https://github.com/boostorg/wave/pull/79">PR#79</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Repair lexertl lexer (<a href="https://github.com/boostorg/wave/pull/78">PR#78</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensure hooks are run on predefined macros as well (<a href="https://github.com/boostorg/wave/pull/87">PR#87</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various minor bug fixes
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
C++98/03 support is now deprecated and will be removed in 1.77
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation errors for placeholders; they now work in the general
|
||
case, and in particular work with yap::print().
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
constexpr all the YAP.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix printing of correct value category in yap::print().
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Doc clarification.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_74_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/boostbook/">Boostbook</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Change encoding of generated documentation from US-ASCII to UTF-8.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_74_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.0, 4.0.1, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Boost's additional test compilers include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_74_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.73.0</title><link>https://www.boost.org/users/history/version_1_73_0.html</link><guid>https://www.boost.org/users/history/version_1_73_0.html</guid><pubDate>Tue, 28 Apr 2020 03:57:05 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_73_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. Be careful as they have not been through the normal testing
|
||
process.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Outcome <code><span class="identifier">status_code_domain</span></code>
|
||
assertion removal
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://www.boost.org/patches/1_73_0/0001-outcome-assert.patch">Outcome patch</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Beast and coroutines
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://www.boost.org/patches/1_73_0/0002-beast-coroutines.patch">Beast patch</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<div id="version_1_73_0.known_issues.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> Standard library functions
|
||
with UTF-8 API on Windows, from Artyom Beilis.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/static_string/">StaticString</a>:</span> A dynamically
|
||
resizable string of characters with compile-time fixed capacity and contiguous
|
||
embedded storage, from Vinnie Falco and Krystian Stasiowski
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_73_0.known_issues.updated_libraries">
|
||
<h3><span class="link">Updated
|
||
Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/align/">Align</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Update <code><span class="identifier">aligned_alloc</span></code>
|
||
to support older mingw32.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Speedup compilation by not including <code><span class="special">&lt;</span><span class="identifier">algorithm</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including CI hardening.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility with C++20 concept syntax.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Marked the POSIX descriptor classes' move constructors as <code><span class="keyword">noexcept</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">host_name_verification</span></code> class,
|
||
which is a drop-in replacement for <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">rfc2818_verification</span></code>.
|
||
The <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">rfc2818_verification</span></code> class has
|
||
been marked as deprecated. As a consequence of this change, SSL
|
||
support now depends on functions that were introduced in OpenSSL
|
||
1.0.2.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added an <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code> constructor to take ownership
|
||
of a native handle.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed C++ language version detection with <tt>gcc</tt>
|
||
to use <code><span class="identifier">__cplusplus</span></code>
|
||
macro.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a work counting issue in the asynchronous resolve operation
|
||
for endpoints.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code> converting constructors
|
||
and assignment operators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured that resolvers are restarted correctly after a fork.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility with the current NetBSD release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed spurious handler requirement checks in some <code><span class="identifier">async_read</span></code> overloads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">ssl</span><span class="special">::</span><span class="identifier">context</span></code>
|
||
class to propagate non-EOF errors from the <code><span class="identifier">add_certificate_authority</span></code>
|
||
function.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a Windows-specific <code><span class="identifier">thread_pool</span></code>
|
||
destructor hang that occurred when the pool had an associated I/O
|
||
object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the <tt>select</tt> reactor to recreate the "self
|
||
pipe trick" sockets on error. This addresses an issue on some
|
||
versions of Windows, where these sockets are discconected after
|
||
a system sleep.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a compile error in the buffered streams due to the lack of
|
||
reference collapsing in C++98.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">priority_scheduler</span></code>
|
||
example to demonstrate calls to <code><span class="identifier">shutdown</span><span class="special">()</span></code> and <code><span class="identifier">destroy</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed some unnecessary null pointer checks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed Windows platform detection to recognise TV titles as Windows
|
||
apps.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added some emscripten compatibility patches.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a compile error in the <code><span class="identifier">use_awaitable_t</span><span class="special">::</span><span class="identifier">as_default_on</span></code>
|
||
function.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed all uses of the boost.bind placeholders to use the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">placeholders</span></code> namespace.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a potential compile error in the <code><span class="identifier">async_compose</span></code>
|
||
implementation due to incorrect overload selection.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Suppressed some non-virtual destructor warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various documentation fixes and improvements.
|
||
</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></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>
|
||
Implemented C++20 <code><span class="identifier">atomic_ref</span></code>.
|
||
See <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref">docs</a>
|
||
and especially the <a href="https://www.boost.org/doc/html/atomic/interface.html#atomic.interface.interface_atomic_ref.caveats">caveats</a>
|
||
section.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented <code><span class="identifier">atomic_flag</span><span class="special">::</span><span class="identifier">test</span></code>
|
||
operation, which was introduced in C++20.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>
|
||
should now take into account alignment requirements of <code><span class="identifier">T</span></code>, which makes a difference if
|
||
those requirements are higher than that of the internal storage
|
||
of <code><span class="identifier">atomic</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added static asserts enforcing the requirements on the value type
|
||
<code><span class="identifier">T</span></code> used with <code><span class="identifier">atomic</span></code> and <code><span class="identifier">atomic_ref</span></code>.
|
||
This should prohibit invalid types from being used as atomics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved internal lock pool implementation. The pool is larger,
|
||
and lock selection accounts for atomic object alignment, which
|
||
should reduce the potential of thread contention.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed incorrect x86 code generated for <code><span class="identifier">bit_test_and_</span><span class="special">*</span></code> operations on 8 and 16-bit arguments.
|
||
Other architectures are not affected.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a possible unaligned memory access in <code><span class="identifier">compare_exchange_</span><span class="special">*</span></code> operations, if alignment requirements
|
||
of <code><span class="identifier">value_type</span></code> are
|
||
less than that of the internal storage of <code><span class="identifier">atomic</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">.</span><span class="identifier">hpp</span></code> no longer includes <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">/</span><span class="identifier">atomic_flag</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">atomic</span><span class="special">/</span><span class="identifier">fences</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and only defines the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">atomic</span></code>
|
||
class template and related typedefs. Include the other headers
|
||
explicitly or use <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">atomic</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
to include all parts of Boost.Atomic.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <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>
|
||
accessor and associated <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>
|
||
type are deprecated. Instead, users are advised 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>, respectively. Users
|
||
can define <code><span class="identifier">BOOST_ATOMIC_SILENCE_STORAGE_DEPRECATION</span></code>
|
||
to disable deprecation warnings for the time of transition. The
|
||
deprecated pieces will be removed in a future release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed support for <code><span class="identifier">BOOST_ATOMIC_DETAIL_HIGHLIGHT_OP_AND_TEST</span></code>.
|
||
This macro was used as a helper for transition to the updated returned
|
||
values of <code><span class="special">*</span><span class="identifier">_and_test</span></code>
|
||
operations in Boost.Atomic 1.67, which was released 2 years before
|
||
1.73.
|
||
</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 is a maintenance update.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Nested <code><span class="identifier">mutable_data_type</span></code>
|
||
in Beast dynamic buffers is deprecated.
|
||
</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/context/">Context</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/133">#133</a>: IBM Z: Fix fcontext routines
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/132">#132</a>: mips64/n64: .align 3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/131">#131</a>: Use OSPLAT MIPS32/MIPS64 to set different ABI
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/129">#129</a>: Fix non-PIC in RISC-V assembly
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">polymorphic_downcast</span></code> for references
|
||
(thanks to Julien Delacroix for the patch).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Significant docs update.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/date_time/">date_time</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/date_time/issues/123">#123</a>: Support constexpr in c++14 and above
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/date_time/issues/134">#134</a>: Make date_time all inline. Users no longer need
|
||
to link the library for any functions. Library remains for build
|
||
compatibility.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/date_time/issues/132">#132</a>: Deprecate support for legacy io and <code><span class="identifier">USE_DATE_TIME_PRE_1_33_FACET_IO</span></code>
|
||
macro
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Misc documentation updates and bugfixes.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixes and tests for demangling in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">smart_library</span></code>
|
||
(thanks to Ramil Gauss for <a href="https://github.com/boostorg/dll/issues/35">#35</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Make UB sanitizers happy with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">load_mode</span><span class="special">::</span><span class="identifier">type</span></code>
|
||
<a href="https://github.com/boostorg/dll/issues/30">#30</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ceased dependence on MPL improving compile times (thanks to Nikita
|
||
Kniazev for <a href="https://github.com/boostorg/dll/issues/34">#34</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang and ICC on Windows fixes and CI support for those platforms
|
||
(thanks to Nikita Kniazev <a href="https://github.com/boostorg/dll/issues/33">#33</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including CI hardening and tests improving.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a portability issue in the definition of the maximum block
|
||
limit.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</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/650">PR#650</a> Missing input combinations in <code><span class="identifier">intersection</span><span class="special">()</span></code>
|
||
and introduction of tupled-output.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/671">PR#671</a> Added <code><span class="identifier">d3</span><span class="special">::</span><span class="identifier">point_xyz</span></code>
|
||
geometry model (thanks to Digvijay Janartha).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/657">#657</a> Incorrect definition of <code><span class="identifier">EPSG</span><span class="special">:</span><span class="number">3785</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/639">PR#639</a> R-tree exception-safety improvement.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/668">PR#668</a> Andoyer inverse formula fixed for close
|
||
points.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/687">PR#687</a> Fixed dangling reference in distance algorithm.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Deprecation
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/590">#590</a> Support for C++03 has been deprecated and
|
||
Geometry will require C++14 from Boost 1.75 onwards.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added move constructor and move assignment operator to <code><span class="identifier">image</span></code> class (<a href="https://github.com/boostorg/gil/pull/457">PR#457</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New member function <code><span class="identifier">size</span><span class="special">()</span></code> in <code><span class="identifier">any_image_view</span></code>
|
||
class (<a href="https://github.com/boostorg/gil/pull/456">PR#456</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Replace Boost.Test with Boost.LightweightTest as the only
|
||
test framework used in GIL (<a href="https://github.com/boostorg/gil/pull/459">PR#459</a>) and (<a href="https://github.com/boostorg/gil/pull/464">PR#464</a>).
|
||
This also restructured the <code><span class="identifier">test</span><span class="special">/</span><span class="identifier">extension</span><span class="special">/</span><span class="identifier">io</span><span class="special">/</span></code> sub-tree and targets in
|
||
related <code><span class="identifier">Jamfile</span></code>-s.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed remaining uses of Boost.MPL (<a href="https://github.com/boostorg/gil/pull/459">PR#459</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Renamed all macros using <code><span class="identifier">BOOST_GIL_</span></code>
|
||
prefix (<a href="https://github.com/boostorg/gil/pull/411">PR#411</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Renamed all CMake configuration options using <code><span class="identifier">BOOST_GIL_</span></code> prefix (<a href="https://github.com/boostorg/gil/pull/419">PR#419</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed <code><span class="identifier">extension</span><span class="special">/</span><span class="identifier">dynamic_image</span><span class="special">/</span><span class="identifier">reduce</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
as unused and possibly unfinished (<a href="https://github.com/boostorg/gil/pull/466">PR#466</a>). An implementation
|
||
attempt of techniques described in the paper <a href="http://lubomir.org/academic/MinimizingCodeBloat.pdf">Efficient
|
||
Run-Time Dispatching in Generic Programming with Minimal
|
||
Code Bloat</a> by Lubomir Bourdev, Jaakko Jarvi.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed direct dependency on Boost.MPL, Boost.System and
|
||
Boost.Test.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started removing public macros for compile-time configuration
|
||
of I/O extension tests, i.e. <code><span class="identifier">BOOST_GIL_IO_TEST_ALLOW_READING_IMAGES</span></code>
|
||
and <code><span class="identifier">BOOST_GIL_IO_TEST_ALLOW_WRITING_IMAGES</span></code>.
|
||
Instead, if a test target is built, it builds all its test
|
||
cases unconditionally.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Avoid <code><span class="identifier">longjmp</span></code>
|
||
interaction during destruction of I/O extension objects (<a href="https://github.com/boostorg/gil/pull/433">PR#433</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed missing alignment default value in constructor of
|
||
<code><span class="identifier">image</span></code> class
|
||
(<a href="https://github.com/boostorg/gil/pull/429">PR#429</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed segmentation fault when reading corrupted PNG file
|
||
(<a href="https://github.com/boostorg/gil/pull/414">PR#414</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed illegal initialization of return values in the old
|
||
IOv1 interface of I/O extension (<a href="https://github.com/boostorg/gil/pull/409">PR#409</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Acknowledgements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Samuel Debionne, Thiago Henrique Hüpner, Pranam Lashkari,
|
||
Mateusz Loskot, Debabrata Mandal, Olzhas Zhumabek
|
||
</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>
|
||
New features
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">crop</span></code>
|
||
command to <code><span class="identifier">reduce</span></code>
|
||
algorithm
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">slice</span></code> command
|
||
in <code><span class="identifier">reduce</span></code>
|
||
now works on <code><span class="identifier">category</span></code>
|
||
axis
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">count</span></code>
|
||
accumulator, can be used to add arbitrary metadata to each
|
||
cell
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">sum</span></code> algorithm
|
||
gained a new argument to optionally sum only over inner bins
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Several fixes for bugs in corner cases
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enhanced documentation
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
How to use Boost.Histogram as a backend in an external API
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
More on how to use Boost.Histogram with custom accumulators
|
||
and Boost.Accumulators
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
More on how to use <code><span class="identifier">reduce</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated benchmarks
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See the <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">full
|
||
changelog here</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/icl/">icl</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/icl/pull/23">PR#23</a>: Remove references to date_time compiled library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/icl/pull/17">PR#17</a>: Fix forward decl lower and upper less equal.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Misc bugfixes.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/io/">IO</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Made all the IOS state saver classes non-copyable. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correctly handle error upon first read from the input stream when
|
||
reading a quoted string. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented <code><span class="identifier">ostream_joiner</span></code>
|
||
for delimiter based joining. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Relocated <code><span class="identifier">ostream_string</span></code>
|
||
from the Utility library to the IO library as <code><span class="identifier">ostream_put</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correctly handle stream width and fill in quoted output. (Glen
|
||
Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimize quoted output to write directly to the stream buffer.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Glen Fernandes became the maintainer of the IO library.
|
||
</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>
|
||
Maintenance work, including CI hardening and better workarounds
|
||
for broken standard libraries (thanks to Nikita Kniazev <a href="https://github.com/boostorg/lexical_cast/issues/31">#31</a>,
|
||
<a href="https://github.com/boostorg/lexical_cast/issues/32">#32</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New Features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Default sink used in trivial logging, when no sinks are registered
|
||
in the logging core, now automatically flushes output after
|
||
each log record. (<a href="https://github.com/boostorg/log/issues/103">#103</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">core</span><span class="special">::</span><span class="identifier">flush</span></code> now performs a flush
|
||
on the default sink used for trivial logging, when no sinks
|
||
are registered.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a workaround for some syslog API implementations (e.g.
|
||
glibc), which do not save the application identification
|
||
string in <code><span class="identifier">openlog</span></code>
|
||
call. Such implementations could access already freed memory
|
||
on each <code><span class="identifier">syslog</span></code>
|
||
call, resulting in undefined behavior. (<a href="https://github.com/boostorg/log/issues/97">#97</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that log file rotation on a specific day of month (e.g.
|
||
<code><span class="identifier">rotation_at_time_point</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">gregorian</span><span class="special">::</span><span class="identifier">greg_day</span><span class="special">(</span><span class="number">1</span><span class="special">))</span></code>) could be silently ignored
|
||
and not happen. (<a href="https://github.com/boostorg/log/issues/98">#98</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed that <code><span class="identifier">text_file_backend</span><span class="special">::</span><span class="identifier">rotate_file</span></code>
|
||
could throw if there were no log records written yet and
|
||
target file name pattern was set.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ported various components of the library to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator_traits</span></code> to improve
|
||
compatibility with C++20 allocators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation errors when building in MSYS2 Cygwin environment.
|
||
(<a href="https://github.com/boostorg/log/issues/102">#102</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>
|
||
IMPORTANT: C++03 support is now deprecated and will be removed
|
||
from March 2021.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Cubic Hermite Interpolation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Modified Akima Interpolation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added PCHIP Interpolation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Quintic Hermite Interpolation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added entropy to numerous distributions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow trivial quadrature case where the two end points are equal,
|
||
and in addition allow bounds to be interchanged.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix exp_sinh quadrature to work with complex types over a non-native
|
||
range.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix miscellaneous compiler warnings in factorial.hpp.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use std::chrono rather than boost::chrono in timed pFq calculations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove much of the old boost::mpl dependencies to improve constexpr
|
||
support.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_unique_if</span></code>
|
||
(contributed by Kris Jusiak)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_flatten</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_rotate_left</span></code>,
|
||
<code><span class="identifier">mp_rotate_right</span></code>
|
||
(contributed by Duncan Barber)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_compose</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_power_set</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_partial_sum</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_iterate</span></code>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">multi_index_container</span></code>
|
||
is now <a href="https://en.cppreference.com/w/cpp/named_req/AllocatorAwareContainer"><code><span class="identifier">AllocatorAware</span></code></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Swapping of internal <code><span class="identifier">KeyFromValue</span></code>,
|
||
<code><span class="identifier">Compare</span></code>, <code><span class="identifier">Hash</span></code> and <code><span class="identifier">Pred</span></code>
|
||
objects now selects the appropriate <code><span class="identifier">swap</span></code>
|
||
function between <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">swap</span></code>
|
||
and ADL candidates, in accordance with standard specifications
|
||
in <strong>[swappable.requirements]</strong> (issue
|
||
<a href="https://github.com/boostorg/multi_index/issues/29">#29</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Provided some internal copy constructors and assignment operators
|
||
whose default implicit definition is deprecated in C++11 onwards
|
||
(<strong>[depr.impldec]</strong>), which was warned
|
||
about on some compilers.
|
||
</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>
|
||
IMPORTANT: Mark C++03 support as deprecated and due for removal
|
||
in 2021.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Big update to cpp_int adds faster Karatsuba and Coomba multiplication
|
||
routines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix conversion of gmp_rational to <code><span class="keyword">long</span>
|
||
<span class="keyword">double</span></code> and <code><span class="identifier">__float128</span></code>, fixes #178.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix up libtommath support to function with the latest libtom releases.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix up some incompatibilities with the latest Intel C++ compiler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix up <code><span class="keyword">constexpr</span></code> arithmetic
|
||
support for latest MSVC release.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Performance of Outcome-based code compiled by clang has been
|
||
greatly improved. The previous implementation of Outcome's
|
||
status bitfield confused clang's optimiser, which caused
|
||
low quality codegen. Unlike most codegen issues, this was
|
||
noticeably in empirical benchmarks of real world code, as
|
||
was shown by <a href="https://wg21.link/P1886">P1886
|
||
<strong>Error speed benchmarking</strong></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The safe part of the <a href="https://github.com/ned14/outcome/tree/better_optimisation"><code><span class="identifier">better_optimisation</span></code></a>
|
||
Outcome v2.2.0 future branch was merged to Outcome v2.1.3
|
||
which includes a new status bitfield implementation. This
|
||
appears to not confuse clang's optimiser, and clang 9 produces
|
||
code which routinely beats GCC 9's code for various canned
|
||
use cases.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Installability is now CI tested per commit. Due to installability
|
||
of standalone Outcome (e.g. <code><span class="identifier">make</span>
|
||
<span class="identifier">install</span></code>) breaking
|
||
itself rather more frequently than is ideal, installability
|
||
is now tested on CI per commit.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/214">#214</a>
|
||
Newer Concepts implementing compilers were unhappy with the
|
||
early check for destructibility of <code><span class="identifier">T</span></code>
|
||
and <code><span class="identifier">E</span></code>, so
|
||
removed template constraints, falling back to static assert
|
||
which runs later in the type instantiation sequence.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/220">#220</a>
|
||
A false positive undefined behaviour sanitiser failure in
|
||
some use cases of Experimental Outcome was worked around
|
||
to avoid the failure message.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Suppressed a potential redundant move warning in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">poly_collection</span><span class="special">::</span><span class="identifier">for_each</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a bug by which elements were copied rather than moved in
|
||
allocator-extended move construction and move assigment between
|
||
collections with non-propagating, unequal allocators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allocator-extended move construction no longer decays to allocator-extended
|
||
copy construction for the legacy version of libstdc++-v3 shipped
|
||
with GCC 4.8 (which can also be used by Clang).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added documentation on distribution of PDBs <a href="https://github.com/boostorg/stacktrace/issues/55">#55</a>, <a href="https://github.com/boostorg/stacktrace/issues/47">#47</a> (thanks
|
||
to emptyVoid and Roger Orr for information and to zlojvavan for
|
||
testing).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed msvc-9 build
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including test fixes <a href="https://github.com/boostorg/stacktrace/issues/86">#86</a>, fixing
|
||
typos <a href="https://github.com/boostorg/stacktrace/issues/84">#84</a>, CI improvements and hardening, inspect tool
|
||
fixes.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.test v3.13 see the <a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html">Changes
|
||
log</a> for more details.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New feature: It is now possible to combine tolerance indication,
|
||
user message and collection comparison modifier in a single <code><span class="identifier">BOOST_TEST</span></code> expression. See change
|
||
logs for more details.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes and pull requests:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GitHub Issues: <a href="https://github.com/boostorg/test/issues/173">#173</a>, <a href="https://github.com/boostorg/test/issues/179">#179</a>, <a href="https://github.com/boostorg/test/issues/220">#220</a>, <a href="https://github.com/boostorg/test/issues/221">#221</a>,
|
||
<a href="https://github.com/boostorg/test/issues/235">#235</a>
|
||
<a href="https://github.com/boostorg/test/issues/237">#237</a>, <a href="https://github.com/boostorg/test/issues/241">#241</a>, <a href="https://github.com/boostorg/test/issues/245">#245</a>, <a href="https://github.com/boostorg/test/issues/246">#246</a>,
|
||
<a href="https://github.com/boostorg/test/issues/251">#251</a>, <a href="https://github.com/boostorg/test/issues/253">#253</a>
|
||
<a href="https://github.com/boostorg/test/issues/254">#254</a>, <a href="https://github.com/boostorg/test/issues/263">#263</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Trac tickets: <a href="https://svn.boost.org/trac/boost/ticket/11107">#11107</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/41">PR#41</a>, <a href="https://github.com/boostorg/test/pull/114">PR#114</a>, <a href="https://github.com/boostorg/test/pull/187">PR#187</a>,
|
||
<a href="https://github.com/boostorg/test/pull/239">PR#239</a>, <a href="https://github.com/boostorg/test/pull/247">PR#247</a>
|
||
<a href="https://github.com/boostorg/test/pull/252">PR#252</a>, <a href="https://github.com/boostorg/test/pull/259">PR#259</a>,
|
||
<a href="https://github.com/boostorg/test/pull/265">PR#265</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</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 an overload of <code><span class="identifier">throw_exception</span></code>
|
||
that takes a <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">source_location</span></code>
|
||
object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
NOTE: Projects using <code><span class="identifier">BOOST_THROW_EXCEPTION</span></code>
|
||
with exceptions disabled will need to add a definition of this
|
||
new overload.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/tti/">TTI</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added introspection of function templates for more recent C++ compilers
|
||
versions from gcc and vc++. as well as all versions of clang. Older
|
||
versions of vc++ before 14.0 and gcc prior to 4.8 may fail.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added specific introspection for elements of struct/class, enum,
|
||
and union types, which can be used for more fine-grained introspection
|
||
than the general 'type' introspection.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including CI integration with inspect tool.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">ostream_string</span></code>
|
||
facility has moved from the Utility library to the IO library as
|
||
<code><span class="identifier">ostream_put</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed unused includes (thanks to Nikita Kniazev <a href="https://github.com/boostorg/variant/issues/74">#74</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed zero-as-null-pointer-constat warnings (thanks to Bart Siwek
|
||
<a href="https://github.com/boostorg/variant/issues/77">#77</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including typo fixes.
|
||
</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">std</span><span class="special">::</span><span class="identifier">hash</span></code>,
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">variant</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">...&gt;</span></code>
|
||
is now trivial when all types in <code><span class="identifier">T</span><span class="special">...</span></code> are trivial. This improves performance
|
||
by enabling it to be passed to, and returned from, functions in
|
||
registers.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/winapi/">WinAPI</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Headers in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">winapi</span></code>
|
||
are deprecated and will be removed in a future release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.WinAPI headers no longer include <code><span class="identifier">winerror</span><span class="special">.</span><span class="identifier">h</span></code>.
|
||
Include <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">winapi</span><span class="special">/</span><span class="identifier">error_codes</span><span class="special">.</span><span class="identifier">hpp</span></code> to get Windows error codes.
|
||
(<a href="https://github.com/boostorg/winapi/issues/81">#81</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_73_0.known_issues.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 <a href="https://github.com/boostorg/build/releases/tag/4.2.0">4.2.0</a>
|
||
of B2.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
WARNING: Since version 4.0.0 B2 requires a capable C++11 compiler
|
||
to bootstrap. This is only needed to build B2 itself not to build
|
||
Boost for your use.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_73_0.known_issues.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.0, 4.0.1, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1,
|
||
5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Boost's additional test compilers include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1,
|
||
5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_73_0.known_issues.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</description></item><item><title>Version 1.72.0</title><link>https://www.boost.org/users/history/version_1_72_0.html</link><guid>https://www.boost.org/users/history/version_1_72_0.html</guid><pubDate>Wed, 11 Dec 2019 18:06:09 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_72_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. Be careful as they have not been through the normal testing
|
||
process.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Revert cease dependence on range
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://www.boost.org/patches/1_72_0/0001-revert-cease-dependence-on-range.patch">Coroutine
|
||
patch</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_72_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Changed the <code><span class="identifier">async_initiate</span></code>
|
||
helper function to automatically deduce its return type, for C++11
|
||
or later.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed all asynchronous operations to use automatically deduced
|
||
return types, for C++14 or later.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Introduced concepts to support <code><span class="identifier">async_initiate</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the nested template type <code><span class="identifier">rebind_executor</span></code>
|
||
to all I/O object types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the initiation function objects to report their associated
|
||
I/O executor via the nested type <code><span class="identifier">executor_type</span></code>
|
||
and member function <code><span class="identifier">get_executor</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">default_completion_token</span></code>
|
||
trait, giving I/O executor types an associated default completion
|
||
token type for use with asynchronous operations. This trait is specialised
|
||
for the <code><span class="identifier">use_awaitable</span></code>
|
||
completion token, for example, to allow asynchronous operations to
|
||
be used as follows: <code><span class="identifier">co_await</span>
|
||
<span class="identifier">socket</span><span class="special">.</span><span class="identifier">async_connect</span><span class="special">(</span><span class="identifier">my_endpoint</span><span class="special">)</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="identifier">async_initiate</span></code>
|
||
to the Windows-specific I/O objects' asynchronous operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured that the executor type is propagated to newly accepted sockets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to require that <code><span class="identifier">Protocol</span></code>
|
||
copy and move operations never throw.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to require that <code><span class="identifier">Endpoint</span></code>
|
||
default constructor and move operations never throw.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="keyword">noexcept</span></code> qualifier
|
||
to protocol accessors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="keyword">noexcept</span></code> qualifier
|
||
to socket move constructors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed issues associated with opening serial ports on Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Use the correct constant to initialise the RTS control flag.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Specify a default baud rate (9600).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a lost "outstanding work count" that can occur when
|
||
an asynchronous accept operation is automatically restarted.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_72_0/doc/html/boost_asio/history.html">Revision
|
||
History</a> for further details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a workaround for <code><span class="identifier">__float128</span></code>
|
||
not being considered as a floating point type by some versions of
|
||
libstdc++.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved compatibility with clang-win compiler.
|
||
</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 is a maintenance update containing bug fixes, and updates to
|
||
use the new features delivered in Boost.Asio.
|
||
</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/circular_buffer/">Circular Buffer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix issue <a href="https://github.com/boostorg/circular_buffer/issues/29">#29</a>: <code><span class="identifier">max_size</span><span class="special">()</span></code> now takes the allocator's <code><span class="identifier">max_size</span><span class="special">()</span></code>
|
||
into account. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
architecture s390x supported
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
execution_context removed
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Made <code><span class="identifier">endian_reverse</span></code>,
|
||
<code><span class="identifier">conditional_reverse</span></code>
|
||
and <code><span class="special">*</span><span class="identifier">_to_</span><span class="special">*</span></code> <code><span class="keyword">constexpr</span></code>
|
||
on GCC and Clang
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added convenience load and store functions
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added floating point convenience typedefs
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a non-const overload of <code><span class="identifier">data</span><span class="special">()</span></code>; changed its return type to <code><span class="keyword">unsigned</span> <span class="keyword">char</span><span class="special">*</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">__int128</span></code> support
|
||
to <code><span class="identifier">endian_reverse</span></code>
|
||
when available
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a convenience header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">endian</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/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Extracted <code><span class="identifier">filesystem_error</span></code>
|
||
to <code><span class="identifier">exception</span><span class="special">.</span><span class="identifier">hpp</span></code>; <code><span class="identifier">file_status</span></code>
|
||
and associated enums and functions to <code><span class="identifier">file_status</span><span class="special">.</span><span class="identifier">hpp</span></code>;
|
||
<code><span class="identifier">directory_entry</span></code>,
|
||
<code><span class="identifier">directory_iterator</span></code>
|
||
and <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
to <code><span class="identifier">directory</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> For backward compatibility
|
||
<code><span class="identifier">operations</span><span class="special">.</span><span class="identifier">hpp</span></code> still includes the new headers
|
||
<code><span class="identifier">exception</span><span class="special">.</span><span class="identifier">hpp</span></code>, <code><span class="identifier">file_status</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
and <code><span class="identifier">directory</span><span class="special">.</span><span class="identifier">hpp</span></code>, unless <code><span class="identifier">BOOST_FILESYSTEM_NO_DEPRECATED</span></code>
|
||
macro is defined. These implicit includes are considered deprecated
|
||
and will be removed in a future release. Users are encouraged to
|
||
include the new headers directly or include <code><span class="identifier">filesystem</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">filesystem_error</span></code>
|
||
exception is now implemented in the compiled library of Boost.Filesystem.
|
||
Users may need to add linking with Boost.Filesystem library in their
|
||
projects.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On POSIX.1-2008 platforms, use <code><span class="identifier">utimensat</span></code>
|
||
instead of <code><span class="identifier">utime</span></code>.
|
||
<code><span class="identifier">utime</span></code> is declared
|
||
obsolete in POSIX.1-2008 and can be disabled e.g. in uClibc-ng. (<a href="https://github.com/boostorg/filesystem/pull/115">PR#115</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">directory_iterator</span></code>
|
||
is now left in the end state on memory allocation errors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <code><span class="identifier">directory_iterator</span></code>
|
||
on POSIX systems, support for <code><span class="identifier">readdir</span></code>/<code><span class="identifier">readdir_r</span></code> has been reworked to
|
||
avoid memory allocations for <code><span class="identifier">dirent</span></code>
|
||
structures when <code><span class="identifier">readdir</span></code>
|
||
is used. This reduces memory consumption and eliminates the possibility
|
||
of buffer overruns in case if <code><span class="identifier">readdir</span></code>
|
||
produces a very long directory name.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, use Boost.WinAPI to select the target Windows version.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">directory_options</span></code>
|
||
enum, which reflects the same named enum from C++20. The enum is
|
||
supported in <code><span class="identifier">directory_iterator</span></code>
|
||
and <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
to customize iteration behavior. In particular, the iterators now
|
||
support skipping directories that can't be opened due to insufficient
|
||
permissions. The <code><span class="identifier">symlink_option</span></code>
|
||
enum is now deprecated and should be replaced with <code><span class="identifier">directory_options</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
By default, <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
is now reset to the end state in case of errors, as required by C++20.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/112">#112</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">directory_options</span><span class="special">::</span><span class="identifier">pop_on_error</span></code>
|
||
option, which configures <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
so that it attempts to recover from iteration errors by repeatedly
|
||
invoking <code><span class="identifier">pop</span><span class="special">()</span></code>
|
||
until it succeeds or the end state is reached. (<a href="https://github.com/boostorg/filesystem/issues/113">#113</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">directory_options</span><span class="special">::</span><span class="identifier">skip_dangling_symlinks</span></code>
|
||
option, which configures <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
so that it doesn't follow dangling directory symlinks and continues
|
||
iteration instead of reporting an error.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Deprecated:</strong> The following members
|
||
of <code><span class="identifier">recursive_directory_iterator</span></code>
|
||
are now marked as deprecated: <code><span class="identifier">level</span><span class="special">()</span></code>, <code><span class="identifier">no_push_pending</span><span class="special">()</span></code>, <code><span class="identifier">no_push_request</span><span class="special">()</span></code>, <code><span class="identifier">no_push</span><span class="special">()</span></code>. Users are advised to replace their
|
||
use with the standard counterparts: <code><span class="identifier">depth</span><span class="special">()</span></code>, <code><span class="identifier">recursion_pending</span><span class="special">()</span></code>, <code><span class="identifier">disable_recursion_pending</span><span class="special">()</span></code>. Note that <code><span class="identifier">recursion_pending</span><span class="special">()</span></code> has the opposite meaning compared
|
||
to <code><span class="identifier">no_push_pending</span><span class="special">()</span></code> and <code><span class="identifier">no_push_request</span><span class="special">()</span></code>. Deprecated methods will be removed
|
||
in a future release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_relative</span></code> (and any dependent
|
||
algorithms) to correctly handle empty, dot and dot-dot path elements
|
||
in its argument. The behavior is made closer to C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_relative</span></code> in that empty
|
||
and dot path elements are ignored and dot-dot path elements are accounted
|
||
by decreasing the number of dot-dot path elements to generate in
|
||
the resulting relative path. (<a href="https://github.com/boostorg/filesystem/issues/76">#76</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/functional/factory/">Functional/Factory</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Glen Fernandes rewrote the implementations of <code><span class="identifier">factory</span></code>
|
||
and <code><span class="identifier">value_factory</span></code>
|
||
to provide the following features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support r-value arguments when possible
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support arbitrary number of arguments via variadic templates
|
||
when possible
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support allocators that are final
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support allocators that use fancy pointers
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for disabled exceptions (<code><span class="identifier">BOOST_NO_EXCEPTIONS</span></code>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved compilation times
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The following features have been removed:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Increasing limits for C++03 compilers through <code><span class="identifier">BOOST_FUNCTIONAL_VALUE_FACTORY_MAX_ARITY</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Using <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">none_t</span></code>
|
||
in place of <code><span class="keyword">void</span></code>
|
||
through <code><span class="identifier">BOOST_FUNCTIONAL_FACTORY_SUPPORT_NONE_T</span></code>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/gil/">GIL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Lanczos resampling for image down scaling (<a href="https://github.com/boostorg/gil/pull/309">PR#309</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Methods for binary thresholding, inverted binary
|
||
thresholding and truncation thresholding (<a href="https://github.com/boostorg/gil/pull/313">PR#313</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Otsu thresholding method (<a href="https://github.com/boostorg/gil/pull/314">PR#314</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Adaptive thresholding using mean or gaussian-weighted
|
||
sum of the neighbourhood area (<a href="https://github.com/boostorg/gil/pull/315">PR#315</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Harris response calculation (corner detector without
|
||
non-maximum filtering) (<a href="https://github.com/boostorg/gil/pull/350">PR#350</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Hessian corner detector (<a href="https://github.com/boostorg/gil/pull/364">PR#364</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Types for defining 2D kernel, <code><span class="identifier">kernel_2d</span></code>
|
||
and <code><span class="identifier">kernel_2d_fixed</span></code>,
|
||
in Numeric extension (<a href="https://github.com/boostorg/gil/pull/361">PR#361</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Implementation of 2D convolution as new function
|
||
<code><span class="identifier">convolve_2d</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/367">PR#367</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Box filtering using the average filter (<a href="https://github.com/boostorg/gil/pull/383">PR#383</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Blur function based on normalized mean filter (<a href="https://github.com/boostorg/gil/pull/383">PR#383</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Sobel and Scharr operators (<a href="https://github.com/boostorg/gil/pull/392">PR#392</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GSoC 2019: Median filter to remove noise from image (<a href="https://github.com/boostorg/gil/pull/393">PR#393</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Continued adding new test cases and significantly improved
|
||
overall test coverage.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Documented purpose of <code><span class="identifier">cached_location_t</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/287">PR#287</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Function <code><span class="identifier">convolve_1d</span></code>
|
||
in Numeric extension for convenient use of <code><span class="identifier">convolve_rows</span></code>
|
||
and <code><span class="identifier">convolve_cols</span></code>
|
||
(<a href="https://github.com/boostorg/gil/pull/347">PR#347</a>) and <a href="https://github.com/boostorg/gil/pull/367">PR#367</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Function <code><span class="identifier">extend_boundary</span></code>
|
||
in Numeric extension to perform image boundary extension (<a href="https://github.com/boostorg/gil/pull/386">PR#386</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Project release notes maintained in Markdown file <code><span class="identifier">RELEASES</span><span class="special">.</span><span class="identifier">md</span></code> (<a href="https://github.com/boostorg/gil/pull/404">PR#404</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Move all tests, core features and extensions, inside <code><span class="identifier">test</span><span class="special">/</span></code>
|
||
directory (<a href="https://github.com/boostorg/gil/pull/302">PR#302</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Replace Boost.MPL with Boost.MP11 (<a href="https://github.com/boostorg/gil/pull/274">PR#274</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed use of Boost.TypeTraits (<a href="https://github.com/boostorg/gil/pull/274">PR#274</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped support for GCC &lt;= 4.8 (<a href="https://github.com/boostorg/gil/pull/296">PR#296</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove <code><span class="identifier">include</span><span class="special">/</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">gil</span><span class="special">/</span><span class="identifier">version</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
file as unused (<a href="https://github.com/boostorg/gil/pull/403">PR#403</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Undetermined value of default-initialized channel and pixel
|
||
objects (<a href="https://github.com/boostorg/gil/pull/273">PR#273</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Undefined behaviour due to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_trivially_default_constructible</span></code>
|
||
specializations (<a href="https://github.com/boostorg/gil/pull/284">PR#284</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Crash when reading PNG files with an invalid header (<a href="https://github.com/boostorg/gil/pull/385">PR#385</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Applied the Rule of Three for numerous types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed uses of deprecated implicit definition of defaulted
|
||
copy assignment operator or copy constructor.
|
||
</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>
|
||
Several new features and performance improvements, some bug-fixes
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See the full <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.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/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved compatibility with clang-win compiler.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mpi/">MPI</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Documentation clarifications.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed scatterv bug when using explicit input buffer offsets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enable usage of MPI_Probe and friend with Intel MPI &gt;= 2019.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Symbol visibility on Windows
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added Hypergeometric functions 1F0, 0F1, 2F0, 1F1 and pFq.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Jacobi polynomial (and derivatives) evaluation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Gegenbauer polynomial (and derivatives) evaluation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Cardinal B-Splines (and derivatives) as polynomial functions
|
||
in their own right.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Cardinal Trigonometric Interpolation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added new statistics sub-section.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added One Sample Student's T Test.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Anderson Darling test for normality.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Ljung Box test for auto-correlation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added Runs test for random sequences.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The headers <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">univariate_statistics</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">math</span><span class="special">/</span><span class="identifier">tools</span><span class="special">/</span><span class="identifier">bivariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>, have been deprecated in favor
|
||
of <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">math</span><span class="special">/</span><span class="identifier">statistics</span><span class="special">/</span><span class="identifier">univariate_statistics</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">math</span><span class="special">/</span><span class="identifier">statistics</span><span class="special">/</span><span class="identifier">bivariate_statistics</span><span class="special">.</span><span class="identifier">hpp</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added The Empirical CDF distribution.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reworked the Sterling approximation used by multiprecision gamma
|
||
functions to be applicable to all the function that use the Lanczos
|
||
approximation at regular precision. Also extended Lanczos approximations
|
||
up to 100 decimal digit precision.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Big <code><span class="keyword">constexpr</span></code> update
|
||
allows cpp_int and float128 arithmetic to be fully <code><span class="keyword">constexpr</span></code> with gcc and clang 9 or
|
||
later, or any compiler supporting <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">is_constant_evaluated</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix bug in variable precision mpf_float which causes it to go into
|
||
a tailspin trying to select the correct precision - see https://github.com/boostorg/multiprecision/issues/164.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Standalone outcome is now <code><span class="identifier">make</span>
|
||
<span class="identifier">install</span></code>-able, and
|
||
cmake <code><span class="identifier">find_package</span><span class="special">()</span></code> can find it. Note that you
|
||
must separately install and <code><span class="identifier">find_package</span><span class="special">()</span></code> Outcome's dependency, quickcpplib,
|
||
else <code><span class="identifier">find_package</span><span class="special">()</span></code> of Outcome will fail.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The git submodule mechanism used by standalone Outcome of specifying
|
||
dependent libraries has been replaced with a cmake superbuild
|
||
of dependencies mechanism instead. Upon cmake configure, an
|
||
internal copy of quickcpplib will be git cloned, built and
|
||
installed into the build directory from where an internal
|
||
<code><span class="identifier">find_package</span><span class="special">()</span></code> uses it. This breaks the
|
||
use of the unconfigured Outcome repo as an implementation of
|
||
Outcome, one must now do one of: 1. Add Outcome as subdirectory
|
||
to cmake build. 2. Use cmake superbuild (i.e. <code><span class="identifier">ExternalProject_Add</span><span class="special">()</span></code>)
|
||
to build and install Outcome into a local installation. 3.
|
||
Use one of the single header editions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For standalone Outcome, the current compiler is now checked
|
||
for whether it will compile code containing C++ Concepts, and
|
||
if it does, all cmake consumers of Outcome will enable C++
|
||
Concepts. Set the cmake variable <code><span class="identifier">CXX_CONCEPTS_FLAGS</span></code>
|
||
to an empty string to prevent auto detection and enabling of
|
||
C++ Concepts support occurring.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">OUTCOME_TRY</span></code>
|
||
operation now hints to the compiler that operation will be
|
||
successful. <a href="https://wg21.link/P1886">P1886 <strong>Error speed benchmarking</strong></a> showed
|
||
that there is considerable gain in very small functions by
|
||
hinting to the compiler whether the expression is expected
|
||
to be successful or not. <code><span class="identifier">OUTCOME_TRY</span></code>
|
||
previously did not hint to the compiler at all, but now it
|
||
does. A new suite of macros <code><span class="identifier">OUTCOME_TRY_FAILURE_LIKELY</span></code>
|
||
hint to the compiler that failure is expected. If you wish
|
||
to return to the previously unhinted behaviour, define <code><span class="identifier">OUTCOME_TRY_LIKELY</span><span class="special">(</span><span class="identifier">expr</span><span class="special">)</span></code>
|
||
to <code><span class="special">(!!</span><span class="identifier">expr</span><span class="special">)</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/199">#199</a>
|
||
Support for C++ Coroutines has been added. This comes in two
|
||
parts, firstly there is now an <code><span class="identifier">OUTCOME_CO_TRY</span><span class="special">()</span></code> operation suitable for performing
|
||
the <code><span class="identifier">TRY</span></code> operation
|
||
from within a C++ Coroutine. Secondly, in the header <code><span class="identifier">outcome</span><span class="special">/</span><span class="identifier">coroutine_support</span><span class="special">.</span><span class="identifier">hpp</span></code> there are implementations
|
||
of <code><span class="identifier">eager</span><span class="special">&lt;</span><span class="identifier">OutcomeType</span><span class="special">&gt;</span></code>
|
||
and <code><span class="identifier">lazy</span><span class="special">&lt;</span><span class="identifier">OutcomeType</span><span class="special">&gt;</span></code>
|
||
which let you more naturally and efficiently use <code><span class="identifier">basic_result</span></code> or <code><span class="identifier">basic_outcome</span></code> from within
|
||
C++ Coroutines -- specifically, if the result or outcome will
|
||
construct from an exception pointer, exceptions thrown in the
|
||
coroutine return an errored or excepted result with the thrown
|
||
exception instead of throwing the exception through the coroutine
|
||
machinery (which in current compilers, has a high likelihood
|
||
of blowing up the program). Both <code><span class="identifier">eager</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">lazy</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> can accept any <code><span class="identifier">T</span></code> as well. Both have been
|
||
tested and found working on VS2019 and clang 9.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/210">#210</a>
|
||
<code><span class="identifier">make_error_code</span><span class="special">()</span></code> and <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code> are now additionally considered
|
||
for compatible copy and move conversions for <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code>.
|
||
This lets you construct a <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span><span class="special">&gt;</span></code> into a <code><span class="identifier">basic_result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">error_code</span><span class="special">&gt;</span></code>, where <code><span class="identifier">E</span></code>
|
||
is a custom type which has implemented the ADL discovered free
|
||
function <code><span class="identifier">error_code</span>
|
||
<span class="identifier">make_error_code</span><span class="special">(</span><span class="identifier">E</span><span class="special">)</span></code>,
|
||
but is otherwise unrelated to <code><span class="identifier">error_code</span></code>.
|
||
The same availability applies for <code><span class="identifier">exception_ptr</span></code>
|
||
with <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code> being the ADL discovered
|
||
free function. <code><span class="identifier">basic_outcome</span><span class="special">&lt;&gt;</span></code> has less support for
|
||
this than <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code> in order to keep constructor
|
||
count down, but it will accept via this mechanism conversions
|
||
from <code><span class="identifier">basic_result</span><span class="special">&lt;&gt;</span></code> and <code><span class="identifier">failure_type</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/184">#184</a>
|
||
The detection of <code><span class="special">[[</span><span class="identifier">nodiscard</span><span class="special">]]</span></code>
|
||
support in the compiler was very mildly broken.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/preprocessor/">Preprocessor</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Topic added which discusses emptiness
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for the C++20 <code><span class="identifier">__VA_OPT__</span></code>
|
||
construct
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_PP_VARIADIC_HAS_OPT</span></code>
|
||
whether <code><span class="identifier">__VA_OPT__</span></code>
|
||
is supported at the C++20 level
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_PP_CHECK_EMPTY</span></code>
|
||
test for emptiness using <code><span class="identifier">__VA_OPT__</span></code>
|
||
at the C++20 level
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_PP_VA_OPT</span></code>
|
||
more flexible alternative to <code><span class="identifier">__VA_OPT__</span></code>
|
||
at the C++20 level
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</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>
|
||
Implemented <code><span class="identifier">allocate_unique</span></code>
|
||
for scalars and arrays. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.test v3.12 see the <a href="https://www.boost.org/libs/test/doc/html/boost_test/change_log.html">Changes
|
||
log</a> for more details.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New feature:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
||
has been added.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Better diagnostic on <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">exception</span></code>
|
||
and no rtti mode (thanks to Mikhail Pilin / [pull_request 234])
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes and pull requests:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GitHub Issues: <a href="https://github.com/boostorg/test/issues/206">#206</a>, <a href="https://github.com/boostorg/test/issues/217">#217</a>, <a href="https://github.com/boostorg/test/issues/223">#223</a>, <a href="https://github.com/boostorg/test/issues/229">#229</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/227">PR#227</a>, <a href="https://github.com/boostorg/test/pull/231">PR#231</a>, <a href="https://github.com/boostorg/test/pull/232">PR#232</a>,
|
||
<a href="https://github.com/boostorg/test/pull/234">PR#234</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/vmd/">VMD</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_VMD_IS_EMPTY</span></code>
|
||
updated to use <code><span class="identifier">__VA_OPT__</span></code>
|
||
at the C++20 level has 100% reliability
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_72_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.0, 4.0.1, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Boost's additional test compilers include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_72_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Michael Caisse managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.71.0</title><link>https://www.boost.org/users/history/version_1_71_0.html</link><guid>https://www.boost.org/users/history/version_1_71_0.html</guid><pubDate>Mon, 19 Aug 2019 15:31:22 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_71_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> A never-valueless,
|
||
strong guarantee implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span></code>,
|
||
from Peter Dimov.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_71_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/align/">Align</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for any integral type in the integral versions of <code><span class="identifier">align_up</span></code> and <code><span class="identifier">align_down</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Revised the implementation of <code><span class="identifier">aligned_allocator</span></code>
|
||
to no longer require a specialization for <code><span class="keyword">void</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Define <code><span class="identifier">propagate_on_container_move_assignment</span></code>
|
||
and <code><span class="identifier">is_always_equal</span></code>
|
||
in <code><span class="identifier">aligned_allocator</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved performance slightly by eliminating a redundant move construction
|
||
when completed handlers are dispatched.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Eliminated a compiler warning by annotating a <code><span class="keyword">case</span></code>
|
||
fall-through in the free function <code><span class="identifier">connect</span><span class="special">()</span></code> implementation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">is_</span><span class="special">*</span><span class="identifier">_buffer_sequence</span></code> detection traits
|
||
for user-defined sequence types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some Windows-specific warnings about an incompatible pointer
|
||
cast when obtaining the <code><span class="identifier">CancelIoEx</span></code>
|
||
entry point.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to automatically set the defaults when opening a serial port
|
||
on Windows.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the serial port <code><span class="identifier">get_option</span><span class="special">()</span></code> member function to be const.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a name hiding issue with the WinRT stream-oriented socket backend's
|
||
<code><span class="identifier">shutdown</span></code> function.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Applied a minor fix to the documentation for <code><span class="identifier">is_dynamic_buffer</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added some support for Haiku OS.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added wolfSSL compatability.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to require C++17 or later for coroutines TS support with
|
||
clang.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a doxygen generation problem in the tutorial.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured example programs are correctly incorporated into the documentation.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Static initialization of the default constructed <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code>
|
||
is now possible.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed performance regression in assignment on a compilers without
|
||
move-semantics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</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 version consists mostly of bug fixes and performance improvements.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Substantial work included for the split compilation mode, to reduce
|
||
compile time when defining <code><span class="identifier">BOOST_BEAST_SEPARATE_COMPILATION</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
We'd love to know how you or your company use Beast, consider adding
|
||
an item 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/circular_buffer/">Circular Buffer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Correct doxygen generated reference to no longer show internal members.
|
||
(Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Eliminate ubsan warning on <code><span class="identifier">add</span></code>
|
||
and <code><span class="identifier">sub</span></code>. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix incorrect check in <code><span class="identifier">is_uninitialized</span></code>.
|
||
(Niklas Fejes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/container/">Container</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/47">GitHub
|
||
#47: <em>"added alignment specification for small_vector"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/88">GitHub
|
||
#88: <em>"Implement C++17 MoveAssignable requirements
|
||
for self-move assignments"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/107">GitHub
|
||
#107: <em>"Alignment ignored in resource_adaptor"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/109">GitHub
|
||
#109: <em>"Get rid of integer overflow in copy_move_algo.hpp
|
||
(-fsanitize=integer)"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/pull/110">GitHub
|
||
#110: <em>"Avoid gcc 9 deprecated copy warnings
|
||
in new_allocator.hpp"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/112">GitHub
|
||
#112: <em>"vector::resize() compilation error with
|
||
msvc-10..12: data is not a member of boost::detail::aligned_storage"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/114">GitHub
|
||
#114: <em>"Fix small_vector noexcept specification"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/116">GitHub
|
||
#116: <em>"MSVC + boost 1.70 compilation error when
|
||
windows.h is already included (detail/thread_mutex.hpp)"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/117">GitHub
|
||
#117: <em>"flat_map/map::insert_or_assign with hint
|
||
has wrong return types"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/118">GitHub
|
||
#118: <em>"Non-unique inplace_set_difference used
|
||
in in flat_tree_merge_unique and iterator invalidation in insert_unique"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/122">GitHub
|
||
#122: <em>"Fix has_trivial_destructor_after_move"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/123">GitHub
|
||
#123: <em>"With heterogeneous lookup, <code><span class="identifier">equal_range</span></code> can result in
|
||
a range with length greater than 1"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code>deque</code> can now
|
||
have options, using <code>deque_options</code>.
|
||
The block size/bytes can be be specified.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code>static_vector</code>
|
||
can now have options, using <code>static_vector_options</code>.
|
||
Alignment and throwing behaviour can be be specified.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code>small_vector</code>
|
||
can now have options, using <code>small_vector_options</code>.
|
||
Alignment and growth factor can be be specified.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/context/">Context</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add support for RISC-V LP64D
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/72">#72</a>: Fix ABI violation on ppc64 ELFv2
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/context/issues/99">#99</a>: cleanup of stack if creating ucontext fails
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</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 functions <code><span class="identifier">alloc_construct</span></code>,
|
||
<code><span class="identifier">alloc_construct_n</span></code>,
|
||
<code><span class="identifier">alloc_destroy</span></code>, and
|
||
<code><span class="identifier">alloc_destroy_n</span></code> in
|
||
<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">alloc_construct</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> for allocator aware and exception
|
||
safe construction and destruction of objects and arrays. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added constexpr functions <code><span class="identifier">first_scalar</span></code>
|
||
in <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">first_scalar</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> for obtaining a pointer to the
|
||
first scalar element of an array. Given a pointer of type <code><span class="identifier">T</span><span class="special">*</span></code>
|
||
they return a pointer of type <code><span class="identifier">remove_all_extents_t</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;*</span></code>. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added class template <code><span class="identifier">noinit_adaptor</span></code>
|
||
in <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">noinit_adaptor</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> which is an allocator adaptor
|
||
that converts any allocator into one whose <code><span class="identifier">construct</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> performs default initialization
|
||
via placement new, and whose <code><span class="identifier">destroy</span><span class="special">(</span><span class="identifier">ptr</span><span class="special">)</span></code> invokes the <code><span class="identifier">value_type</span></code>
|
||
destructor directly. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added class template <code><span class="identifier">default_allocator</span></code>
|
||
in <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">default_allocator</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>, which can serve as a minimal
|
||
default allocator that has interface similar to C++20 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code>, supports configurations
|
||
with disabled exceptions and does not have <code><span class="identifier">std</span></code>
|
||
as an associated namespace. The allocator uses <code><span class="keyword">operator</span>
|
||
<span class="keyword">new</span></code> and <code><span class="keyword">operator</span>
|
||
<span class="keyword">delete</span></code> for allocation. (Glen
|
||
Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <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">uncaught_exceptions</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header, added workarounds for
|
||
better compatibility with QNX SDP 7.0 when libc++/libc++abi libraries
|
||
are used. (Andrey Semashev, <a href="https://github.com/boostorg/core/issues/59">#59</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">detail</span><span class="special">/</span><span class="identifier">sp_typeinfo</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> header is now marked as deprecated
|
||
and will be removed in a future release. <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">typeinfo</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>
|
||
should be used instead. (Peter Dimov)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dynamic_bitset/">Dynamic Bitset</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Enabled hardware-assisted popcount on MSVC (<a href="https://github.com/boostorg/dynamic_bitset/pull/38">PR#38</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for boost::hash and std::hash (<a href="https://github.com/boostorg/dynamic_bitset/pull/45">PR#45</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support copy-initialization with default constructor (<a href="https://github.com/boostorg/dynamic_bitset/pull/48">PR#48</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/endian/">Endian</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clarified requirements on the value type template parameter
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="keyword">float</span></code>
|
||
and <code><span class="keyword">double</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">endian_load</span></code>,
|
||
<code><span class="identifier">endian_store</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated <code><span class="identifier">endian_reverse</span></code>
|
||
to correctly support all non-<code><span class="keyword">bool</span></code>
|
||
integral types
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved deprecated names to the deprecated header <code><span class="identifier">endian</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/fiber/">Fiber</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
documentation for shared_work updated
|
||
</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 incorrect <code><span class="identifier">error_code</span></code>
|
||
returned from directory iterator increment when <code><span class="identifier">readdir_r</span></code>
|
||
is used.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
For <code><span class="identifier">path</span></code>, fixed rvalue-aware
|
||
<code><span class="keyword">operator</span><span class="special">/</span></code>
|
||
return type to return an rvalue instead of rvalue reference. This
|
||
fixes leaving a dangling reference in the user's code if the result
|
||
of <code><span class="keyword">operator</span><span class="special">/</span></code>
|
||
is bound to a const reference. (<a href="https://github.com/boostorg/filesystem/issues/110">#110</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for better compatibility with Windows CE. (<a href="https://github.com/boostorg/filesystem/pull/24">PR#24</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added minimal support for CMake. (<a href="https://github.com/boostorg/filesystem/pull/106">PR#106</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/histogram/index.html">Histogram</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Support for thread-safe storages and new thread-safe accumulators
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for compiling without exceptions/RTTI (increases performance
|
||
by 10-20 %) (with Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Performance improvements for 1D and 2D histograms
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
boost::histogram::indexed now returns forward iterator range
|
||
instead of input iterator range
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
boost::histogram::indexed_range::accessor is now non-copyable
|
||
and acts like reference to cell value, making more algorithms
|
||
from the C++ stdlib work
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
boost::histogram::algorithm::reduce with new slice option and
|
||
option fusion
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
boost::histogram::algorithm::project accepts runtime indices
|
||
for static histograms
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug Fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
boost::histogram::algorithm::reduce also works on histograms
|
||
that have some axis types without reduction support
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
boost::histogram::axis::traits::update now works correctly
|
||
for boost::histogram::axis::variant
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Other:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
100 % test coverage
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduced internal Boost dependencies
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved documentation and examples
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Guaranteed no-throw moves for all builtin axis types
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Compile cleanly at higher warning levels
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">changelog</a>
|
||
for more details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/iostreams/">IoStreams</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed processing of multi-stream files (<a href="https://github.com/boostorg/iostreams/pull/87">PR#87</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for multi-threaded LZMA (<a href="https://github.com/boostorg/iostreams/pull/95">PR#95</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/interprocess/">Interprocess</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/85">GitHub
|
||
#85 (<em>"warning: Implicit conversion loses integer precision"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/86">GitHub
|
||
#86 (<em>"warning: Possible misuse of comma operator"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/pull/42">GitHub
|
||
#42: <em>Documentation does not describe treap priority_of_value
|
||
changes</em></a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/pull/43">GitHub
|
||
#43: <em>Fix tests with BOOST_INTRUSIVE_VARIADIC_TEMPLATES
|
||
enabled</em></a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/intrusive/pull/45">GitHub
|
||
#45: <em>Disable variadic templates for MSVC-12 to avoid ICEs</em></a>
|
||
</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>
|
||
Added tests for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">::</span><span class="identifier">path</span></code>
|
||
conversions <a href="https://github.com/boostorg/lexical_cast/issues/25">#25</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including <a href="https://github.com/boostorg/lexical_cast/issues/28">#28</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>
|
||
in <code><span class="identifier">basic_formatting_ostream</span></code>.
|
||
The string view can now participate in character code conversion
|
||
on output.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">auto_newline</span></code>
|
||
formatter and stream manipulator. It can be used to ensure
|
||
that formatted output always ends with a newline while avoiding
|
||
duplicate newlines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the output stream, text file and text multi-file sink backends
|
||
added support for configuring behavior with regard to appending
|
||
a trailing newline to every formatted log record. Use <code><span class="identifier">auto_newline_mode</span></code> named parameter
|
||
of the backend constructor or call the <code><span class="identifier">set_auto_newline_mode</span></code>
|
||
method on the sink backend.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>Note:</strong> The default behavior
|
||
with regard to trailing newlines added by sink backends has
|
||
changed slightly compared to the previous Boost.Log releases.
|
||
The backends will now only add a trailing newline if there
|
||
isn't one in the formatted log message string already. In previous
|
||
releases a newline was added unconditionally.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for passing arbitrary function objects in the
|
||
<code><span class="identifier">filter</span></code> and
|
||
<code><span class="identifier">format</span></code> named
|
||
parameters to sink constructors and convenience functions for
|
||
initializing sinks. For example, it is now possible to specify
|
||
C++11 lambda functions directly in these parameters. (<a href="https://github.com/boostorg/log/issues/63">#63</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the default filter and formatter factories used in filter
|
||
and formatter parsers, added support for severity level attribute
|
||
values of type <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">log</span><span class="special">::</span><span class="identifier">trivial</span><span class="special">::</span><span class="identifier">severity_level</span></code>.
|
||
For filters, the support is limited to attributes with "Severity"
|
||
name.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed incorrect parsing of components of the rotated file names
|
||
while scanning for files in the text file sink backend. If
|
||
the file name pattern ended with a placeholder (for example,
|
||
a file counter), the <code><span class="identifier">scan_for_files</span></code>
|
||
method would not find files matching that pattern in the target
|
||
storage, leaving them unmanaged. In particular, such files
|
||
would not be deleted to free target storage. (<a href="https://github.com/boostorg/log/issues/78">#78</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated <code><span class="identifier">basic_formatting_ostream</span></code>
|
||
and <code><span class="identifier">basic_record_ostream</span></code>
|
||
to make it possible to overload stream output operators for
|
||
pointers to user-defined types. User-defined <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>
|
||
overloads taking <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_ostream</span></code>
|
||
and a pointer argument should now be picked up by the compiler
|
||
when the pointer is being written to one of Boost.Log streams.
|
||
(<a href="https://github.com/boostorg/log/issues/84">#84</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>
|
||
New features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Catmull-Rom interpolator now works in C++11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Cardinal quadratic B-spline interpolation
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Domain of elliptic integrals extended
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
sin_pi and cos_pi performance improvements
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Forward-mode automatic differentiation
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Vector valued barycentric rational interpolation
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ooura's method for evaluation of Fourier integrals
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Multiple compatibility issues with Multiprecision fixed
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Lambert-W fixed on a rare architecture
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/metaparse/">Metaparse</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
New features:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
In C++11 variadic template support for the following: <code><span class="identifier">sequence</span></code>, <code><span class="identifier">one_of_c</span></code>,
|
||
<code><span class="identifier">one_of</span></code>, <code><span class="identifier">repeated_one_of</span></code>, <code><span class="identifier">repeated_one_of1</span></code>, <code><span class="identifier">one_char_except_c</span></code>, <code><span class="identifier">one_char_except</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">BOOST_METAPARSE_STRING</span></code>
|
||
does not use out of range character values as template arguments.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">any_of_c</span><span class="special">&lt;&gt;</span></code>
|
||
does not create empty array in C++14.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/move/">Move</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/move/issues/26">Git Issue
|
||
#26: <em>"Invalid iterator increment/decrement in the
|
||
last iteration of adaptive_sort_combine_blocks"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_array/">Multi Array</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Simplify allocator support by using new <code><span class="identifier">alloc_construct_n</span></code>
|
||
and <code><span class="identifier">alloc_destroy_n</span></code>
|
||
facilities from Core. (Glen Fernandes)
|
||
</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 <a href="https://www.boost.org/libs/multi_index/doc/tutorial/key_extraction.html#x_mem_fun">variants
|
||
of <code><span class="identifier">const_mem_fun</span></code>
|
||
and <code><span class="identifier">mem_fun</span></code></a>
|
||
for differently qualified member functions (issue <a href="https://github.com/boostorg/multi_index/issues/24">#24</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Terse <a href="https://www.boost.org/libs/multi_index/doc/reference/key_extraction.html#key"><code><span class="identifier">key</span></code></a> specification syntax
|
||
now correctly handles <code><span class="keyword">noexcept</span></code>-specified
|
||
member functions (issue <a href="https://github.com/boostorg/multi_index/issues/24">#24</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/outcome/">Outcome</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/184">#184</a>
|
||
As per request from Boost release managers, relocated <code><span class="identifier">version</span><span class="special">.</span><span class="identifier">hpp</span></code> and <code><span class="identifier">revision</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
into detail, and added the Boost licence boilerplate to the
|
||
top of every source file which was missing one (I think). Also
|
||
took the opportunity to run the licence restamping script over
|
||
all Outcome, so copyright dates are now up to date.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/185">#185</a>
|
||
Add FAQ item explaining issue #185, and why we will do nothing
|
||
to fix it right now.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/189">#189</a>
|
||
Refactored the <code><span class="identifier">OUTCOME_TRY</span></code>
|
||
implementation to use more clarified customisation points capable
|
||
of accepting very foreign inputs. Removed the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">expected</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span>
|
||
<span class="identifier">E</span><span class="special">&gt;</span></code>
|
||
specialisations, as those are no longer necessary. Fixed the
|
||
documentation for the customisation points which previously
|
||
claimed that they are ADL discovered, which they are not. Added
|
||
a recipe describing how to add in support for foreign input
|
||
types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/183">#183</a>
|
||
Added a separate <code><span class="identifier">motivation</span><span class="special">/</span><span class="identifier">plug_error_code</span></code>
|
||
specifically for Boost.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">OUTCOME_VERSION_MINOR</span></code>
|
||
hadn't been updated to 1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/181">#181</a>
|
||
Fix issue #181 where Outcome didn't actually implement the
|
||
strong swap guarantee, despite being documented as doing so.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/190">#190</a>
|
||
Fix issue #190 in Boost edition where unit test suite was not
|
||
runnable from the Boost release distro.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/182">#182</a>
|
||
Fix issue #182 where <code><span class="identifier">trait</span><span class="special">::</span><span class="identifier">is_exception_ptr_available</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> was always true, thus causing
|
||
much weirdness, like not printing diagnostics and trying to
|
||
feed everything to <code><span class="identifier">make_exception_ptr</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/ned14/outcome/issues/192">#192</a>
|
||
Fix issue #192 where the <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">basic_outcome_failure_exception_from_error</span><span class="special">()</span></code> was being defined twice for
|
||
translation units which combine standalone and Boost Outcome's.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Upgraded keyword generation macro <code><span class="identifier">BOOST_PARAMETER_TEMPLATE_KEYWORD</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/15">PR#15</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved keyword generation macro <code><span class="identifier">BOOST_PARAMETER_NESTED_KEYWORD</span></code>
|
||
from <a href="https://www.boost.org/libs/accumulators/doc/html/index.html">Accumulators</a>
|
||
to this library (<a href="https://github.com/boostorg/parameter/pull/28">PR#28</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">reference_wrapper</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">ref</span><span class="special">()</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/16">PR#16</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Moved <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">required</span></code>, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">optional</span></code>,
|
||
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">deduced</span></code> metafunction definitions
|
||
to their own header files in directory boost/parameter (<a href="https://github.com/boostorg/parameter/pull/18">PR#18</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled
|
||
function call operators (<a href="https://github.com/boostorg/parameter/pull/20">PR#20</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for parameter category qualifiers "forward",
|
||
"consume", and "move_from" (current qualifiers
|
||
are "in", "out", and "in_out") (<a href="https://github.com/boostorg/parameter/pull/21">PR#21</a>)
|
||
(<a href="https://github.com/boostorg/parameter/pull/23">PR#23</a>) based on <a href="http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters">http://www.modernescpp.com/index.php/c-core-guidelines-how-to-pass-function-parameters</a>.
|
||
Added new usage syntax <code><span class="identifier">BOOST_PARAMETER_NAME</span><span class="special">((</span><span class="identifier">object</span><span class="special">-</span><span class="identifier">name</span><span class="special">),</span> <span class="keyword">namespace</span><span class="special">-</span><span class="identifier">name</span><span class="special">)</span> <span class="identifier">qualifier</span><span class="special">(</span><span class="identifier">tag</span><span class="special">-</span><span class="identifier">name</span><span class="special">))</span></code> and <code><span class="identifier">BOOST_PARAMETER_NAME</span><span class="special">(</span><span class="identifier">qualifier</span><span class="special">(</span><span class="identifier">name</span><span class="special">))</span></code>. (Existing code that uses qualifiers
|
||
directly and correctly with <code><span class="identifier">BOOST_PARAMETER_FUNCTION</span></code>
|
||
and other code generation macros should remain unaffected for now,
|
||
so no breaking changes.) The reason for the change in usage is to
|
||
enable applying of parameter category constraints to Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled
|
||
functions and constructors invoked through argument composition.
|
||
(Otherwise, it is currently possible to use argument composition
|
||
to bypass parameter category constraints applied in <code><span class="identifier">BOOST_PARAMETER_FUNCTION</span></code> et. al.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for perfect forwarding (<a href="https://github.com/boostorg/parameter/pull/23">PR#23</a>) (<a href="https://github.com/boostorg/parameter/pull/26">PR#26</a>),
|
||
so that <code><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">parameters</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code> can accept non-<code><span class="keyword">const</span></code>
|
||
rvalues. As a positive side effect, Boost.<a href="https://www.boost.org/libs/parameter/doc/html/index.html">Parameter</a>-enabled
|
||
functions and constructors are no longer bound by <code><span class="identifier">BOOST_PARAMETER_MAX_ARITY</span></code>
|
||
on compilers that support perfect forwarding. User code can now check
|
||
for this support by detecting the configuration macro <code><span class="identifier">BOOST_PARAMETER_HAS_PERFECT_FORWARDING</span></code>,
|
||
or manually turn off this support by defining the configuration macro
|
||
<code><span class="identifier">BOOST_PARAMETER_DISABLE_PERFECT_FORWARDING</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added metafunctions <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">is_argument_pack</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/27">PR#27</a>), <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">are_tagged_arguments</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>), and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">compose</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/75">PR#75</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added variadic function template <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">compose</span><span class="special">()</span></code> which takes in named arguments
|
||
and returns them in an argument pack (<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>). For compilers
|
||
that do not support perfect forwarding, the configuration macro
|
||
<code><span class="identifier">BOOST_PARAMETER_COMPOSE_MAX_ARITY</span></code>
|
||
determines the maximum number of arguments that <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">parameter</span><span class="special">::</span><span class="identifier">compose</span><span class="special">()</span></code> can take in (<a href="https://github.com/boostorg/parameter/pull/61">PR#61</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added code generation macros <code><span class="identifier">BOOST_PARAMETER_BASIC_FUNCTION_CALL_OPERATOR</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_BASIC_CONST_FUNCTION_CALL_OPERATOR</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_FUNCTION</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_MEMBER_FUNCTION</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONST_MEMBER_FUNCTION</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_FUNCTION_CALL_OPERATOR</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONST_FUNCTION_CALL_OPERATOR</span></code>,
|
||
<code><span class="identifier">BOOST_PARAMETER_NO_SPEC_CONSTRUCTOR</span></code>,
|
||
and <code><span class="identifier">BOOST_PARAMETER_NO_SPEC_NO_BASE_CONSTRUCTOR</span></code>
|
||
(<a href="https://github.com/boostorg/parameter/pull/52">PR#52</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for Boost.<a href="https://www.boost.org/libs/mp11/doc/html/mp11.html">MP11</a>
|
||
(<a href="https://github.com/boostorg/parameter/pull/47">PR#47</a>) (<a href="https://github.com/boostorg/parameter/pull/66">PR#66</a>) (<a href="https://github.com/boostorg/parameter/pull/70">PR#70</a>). User code
|
||
can now check for this support by detecting the configuration macro
|
||
<code><span class="identifier">BOOST_PARAMETER_CAN_USE_MP11</span></code>,
|
||
or manually turn off this support by defining the configuration macro
|
||
<code><span class="identifier">BOOST_PARAMETER_DISABLE_MP11_USAGE</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved support for parameter-dependent return types via SFINAE
|
||
(<a href="https://github.com/boostorg/parameter/pull/73">PR#73</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/ptr_container/">PtrContainer</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix a ptr_vector regression introduced in 1.66.0 (<a href="https://github.com/boostorg/ptr_container/pull/24">PR#24</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added aliasing constructors to <code><span class="identifier">weak_ptr</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">weak_ptr</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">empty</span><span class="special">()</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">enable_shared_from</span></code>,
|
||
<code><span class="identifier">shared_from</span></code>, and
|
||
<code><span class="identifier">weak_from</span></code>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed output of <code><span class="identifier">name</span><span class="special">()</span></code>, <code><span class="identifier">source_location</span><span class="special">()</span></code> and <code><span class="identifier">source_line</span><span class="special">()</span></code> for the default constructed <code><span class="identifier">frame</span></code> with thread sanitizer builds
|
||
in C++98 mode.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed output of long strings from <code><span class="identifier">name</span><span class="special">()</span></code> and <code><span class="identifier">source_location</span><span class="special">()</span></code> on MSVC <a href="https://github.com/boostorg/stacktrace/issues/78">#78</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.test v3.11 see the <a href="https://www.boost.org/users/history/libs/test/doc/html/boost_test/change_log.html">Changes
|
||
log</a> for more details.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Breaking changes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Test shows deprecation warnings if some very old headers
|
||
as deprecated. If you encounter such warnings, please follow
|
||
the indications: those headers will be removed in a future
|
||
release.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
New feature:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Now <code><span class="identifier">BOOST_TEST</span></code>
|
||
can be used to compare abstract types
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes and pull requests:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GitHub Issues: <a href="https://github.com/boostorg/test/issues/209">#209</a>, <a href="https://github.com/boostorg/test/issues/218">#218</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GitHub Pull Requests: <a href="https://github.com/boostorg/test/pull/219">PR#219</a>, <a href="https://github.com/boostorg/test/pull/224">PR#224</a>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Implemented function template <code><span class="identifier">ostream_string</span></code>
|
||
in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">utility</span><span class="special">/</span><span class="identifier">ostream_string</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code> to optimally write any kind of
|
||
string content to an output stream. It satisfies the requirements
|
||
of [ostream.formatted.reqmts]. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized the stream output operators of <code><span class="identifier">basic_string_view</span></code>
|
||
and <code><span class="identifier">basic_string_ref</span></code>
|
||
to write directly to the <code><span class="identifier">rdbuf</span></code>
|
||
stream buffer. (Glen Fernandes)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking change:</strong> MD5 name-based
|
||
uuid generation was corrected to be identical on all endian systems.
|
||
Define <code><span class="identifier">BOOST_UUID_COMPAT_PRE_1_71_MD5</span></code>
|
||
to keep the result in a format compatible with 1.66 through 1.70.
|
||
This does not affect the default name-based uuid generation which
|
||
is based on SHA1. (<a href="https://github.com/boostorg/uuid/pull/109">PR#109</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>
|
||
Fixed compilation of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply_visitor</span></code>
|
||
with variants passed by non const reference in <a href="https://github.com/boostorg/variant/pull/68">PR#68</a>. Many
|
||
thanks to Ed Catmur for providing the fix.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for std::hash (<a href="https://github.com/boostorg/variant/pull/49">PR#49</a>). Macro <code><span class="identifier">BOOST_VARIANT_DO_NOT_SPECIALIZE_STD_HASH</span></code>
|
||
could be defined to avoid those specializations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added micro optimizations for binary size and performance by Nikita
|
||
Kniazev in <a href="https://github.com/boostorg/variant/pull/63">PR#63</a> and <a href="https://github.com/boostorg/variant/pull/66">PR#66</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Maintenance work, including <a href="https://github.com/boostorg/variant/pull/64">PR#64</a> by Nikita Kniazev and <a href="https://github.com/boostorg/variant/pull/67">PR#67</a> by
|
||
Hans Dembinski.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/yap/">YAP</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added an example showing how to make self-evaluating YAP expressions
|
||
(that is, expressions that don't need an explicit call to <code><span class="identifier">evaluate</span><span class="special">()</span></code>
|
||
or <code><span class="identifier">transform</span><span class="special">()</span></code>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_71_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.0, 4.0.1, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
<p>
|
||
Boost's additional test compilers include:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++0x: 3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2,
|
||
6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.4.7
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Intel, C++14: 18.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 9.1.0, 10.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++1z: 9.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++2a: 10.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++0x: 4.6.4
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
FreeBSD:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 4.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++1z: 4.0.0
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_71_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow and Michael Caisse managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item>
|
||
</channel>
|
||
</rss>
|