mirror of
https://github.com/boostorg/website.git
synced 2026-01-22 17:52:30 +00:00
7102 lines
344 KiB
XML
7102 lines
344 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.78.0</title><link>https://www.boost.org/users/history/version_1_78_0.html</link><guid>https://www.boost.org/users/history/version_1_78_0.html</guid><pubDate>Wed, 08 Dec 2021 03:45:49 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_78_0.known_issues">
|
||
<h3><span class="link">Known Issues</span></h3>
|
||
<p>
|
||
These are patches from library authors which were found too late to be fixed
|
||
in the release.
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Boost.Build silently skips installation of library headers and binaries
|
||
in some cases, see <a href="https://github.com/bfgroup/b2/issues/104">#104</a>.
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed in <a href="https://github.com/bfgroup/b2/pull/113">PR#113</a>,
|
||
<a href="https://www.boost.org/patches/1_78_0/0001-b2-fix-install.patch">patch</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_78_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
No new libraries.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_78_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added an io_uring backend that may optionally be used for all I/O
|
||
objects, including sockets, timers, and posix descriptors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for files, with new new classes for stream-oriented
|
||
and random-access files. This feature currently supports I/O completion
|
||
ports on Windows, and io_uring on Linux.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for portable pipes on POSIX and Windows (when I/O completion
|
||
ports are available).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for registered buffers, which are optimised when using
|
||
the io_uring backend.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added experimental support for channels, that may be used to send
|
||
and queue completions as messages.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implemented improvements to <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disabled <code><span class="identifier">aligned_alloc</span></code>
|
||
on <tt>clang</tt> when using an MSVC runtime.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed to use a faster implementation for <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">network_v4</span><span class="special">::</span><span class="identifier">canonical</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added template specialisations for common uses to improve compile
|
||
time.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reduced the size of <code><span class="identifier">io_context</span></code>
|
||
executors to a single pointer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Increased the small object buffer size for <code><span class="identifier">execution</span><span class="special">::</span><span class="identifier">any_executor</span></code>
|
||
and <code><span class="identifier">any_io_executor</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed multi-signature handling when variadic templates are disabled.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility with new versions of <tt>gcc</tt> and
|
||
<tt>clang</tt>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation on Solaris.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed defence against Qt-defined macros when building with MSVC.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved error messages emitted by <code><span class="identifier">ssl</span></code>
|
||
facilities.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">bind_executor</span></code>
|
||
compatibility with completion tokens.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed build errors when <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added missing move assignment operator to <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an access violation when using coroutines with MSVC, due to
|
||
incorrect alignment of allocated memory.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a cleanup issue in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code>
|
||
that occured when the execution context was shut down with parallel
|
||
operations still pending.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added clarifications to the documentation on concurrency hints.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added documentation on error handling techniques for C++20 coroutines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed various warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_78_0/doc/html/boost_asio/history.html">Revision
|
||
History</a> for further details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">source_location</span><span class="special">::</span><span class="identifier">to_string</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Use process-local futex operations on Android for non-IPC waiting
|
||
and notifying operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for Linux targets that only define <code><span class="identifier">SYS_futex_time64</span></code>
|
||
syscall, such as riscv32.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for incorrect result of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">alignment_of</span></code>
|
||
on clang 8 for 64-bit types on 32-bit x86 targets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a ulock backend for waiting and notifying operations on Darwin
|
||
systems since Mac OS 10.12, iOS 10.0, tvOS 10.0 or watchOS 3.0.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, corrected discrepancy between <tt><em>atomic-type</em>::always_has_native_wait_notify</tt>
|
||
and the corresponding capability macros when targeting Windows 8
|
||
or later. The library will now directly use <code><span class="identifier">WaitOnAddress</span></code>
|
||
and related APIs from public headers and therefore require user to
|
||
link with <code><span class="identifier">synchronization</span><span class="special">.</span><span class="identifier">lib</span></code>
|
||
if the user requires Windows 8 or later by defining <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>, <code><span class="identifier">_WIN32_WINNT</span></code> or similar macros.
|
||
The library is linked automatically on compilers that support auto-linking
|
||
(e.g. MSVC).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for types with padding bits, except unions, on compilers
|
||
that provide a way to clear the padding bits. This feature is supported
|
||
by gcc 11 and MSVC 14.2 (compiler version 19.27) and newer, as well
|
||
as other compilers supporting similar intrinsics. On compilers that
|
||
don't allow to clear the padding bits, types with padding are still
|
||
generally not supported with the exception of 80-bit <code><span class="keyword">long</span> <span class="keyword">double</span></code>
|
||
on x86 targets. A new <code><span class="identifier">BOOST_ATOMIC_NO_CLEAR_PADDING</span></code>
|
||
capability macro is defined to indicate when clearing the padding
|
||
is not supported.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Initializing constructors of <code><span class="identifier">atomic_ref</span></code>
|
||
and <code><span class="identifier">ipc_atomic_ref</span></code>
|
||
no longer use atomic instructions to clear the padding bits in the
|
||
referenced object. This reduces the cost of the atomic reference
|
||
construction.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Initializing constructors of <code><span class="identifier">atomic</span></code>
|
||
and <code><span class="identifier">ipc_atomic</span></code> are
|
||
now <code><span class="keyword">constexpr</span></code> for enums,
|
||
classes and floating point types. For classes and floating point
|
||
types, the constructors are <code><span class="keyword">constexpr</span></code>
|
||
if the compiler supports <code><span class="keyword">constexpr</span></code>
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bit_cast</span></code>, the type has no padding
|
||
bytes and no padding is required to implement native atomic operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In accordance with C++20, default constructors of <code><span class="identifier">atomic</span></code>
|
||
and <code><span class="identifier">ipc_atomic</span></code> now
|
||
perform value initialization of the contained object. For types without
|
||
a user-defined default constructor, this means the default-constructed
|
||
atomic will be zero-initialized.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for compilation error on AIX caused by the assembler
|
||
tool not supporting numeric labels. (<a href="https://github.com/boostorg/atomic/pull/50">PR#50</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for compilation error with Visual Studio 2015
|
||
prior to Update 3. (<a href="https://github.com/boostorg/atomic/issues/52">#52</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See <a href="https://www.boost.org/doc/html/atomic/changelog.html">changelog</a>
|
||
for more details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
This maintenance update brings minor bug fixes and updated CI reporting.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed security vulnerability CVE-2016-9840 in zlib implementation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed WebSocket permessage_deflate implementation. This should result
|
||
in an increase in compression performance when using Beast WebSockets.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed the test stream and test framework's dependency on RTTI.
|
||
You can now use our handy test stream to check your embedded asynchronous
|
||
communications code!
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
We'd love to know how you or your company use Beast, consider adding
|
||
an entry to the <a href="https://github.com/boostorg/beast/wiki/Companies-and-Individuals-Using-Beast">Companies
|
||
and Individuals Using Beast</a> list.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See the full <a href="https://www.boost.org/libs/beast/doc/html/beast/release_notes.html">Release
|
||
Notes</a> for a complete list of changes.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a generic implementation to <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>,
|
||
enabled when <code><span class="identifier">BOOST_CORE_USE_GENERIC_CMATH</span></code>
|
||
is defined or when the platform does not provide the necessary facilities
|
||
in <code><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">type_name</span></code>, a utility function that
|
||
returns the name of a type as a string.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code>, a C++11 implementation of
|
||
C++20's <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> (Glen Fernandes).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">has_describe_enumerators</span></code>,
|
||
<code><span class="identifier">has_describe_bases</span></code>,
|
||
<code><span class="identifier">has_describe_members</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">enum_to_string</span></code>,
|
||
<code><span class="identifier">enum_from_string</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added relational and stream insertion operators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">descriptor_by_name</span></code>,
|
||
<code><span class="identifier">descriptor_by_pointer</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed missing #include, thanks to Denis Blank (<a href="https://github.com/boostorg/dll/pull/54">PR#54</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Dropped TravisCI in favor of GithubAction CI
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">filename</span></code>
|
||
and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">iterator</span></code> no longer return an implicit
|
||
trailing dot (".") element if the path ends with a directory
|
||
separator. Instead, an empty path is returned, similar to C++17 std::filesystem.
|
||
This also affects other methods that are defined in terms of iterators
|
||
or filename, such as <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code>,
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">compare</span></code> or <code><span class="identifier">lexicographical_compare</span></code>.
|
||
For example, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/"</span><span class="special">)</span> <span class="special">==</span> <span class="identifier">path</span><span class="special">(</span><span class="string">"a/b/."</span><span class="special">)</span></code>
|
||
no longer holds true. (<a href="https://github.com/boostorg/filesystem/issues/193">#193</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code>
|
||
no longer produce a trailing dot (".") element and omits
|
||
a directory separator after a trailing dot-dot ("..") element
|
||
in the normalized paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span></code>
|
||
append operations now consider root name and root directory in the
|
||
appended path. If the appended path is absolute, or root name is
|
||
present and differs from the source path, the resulting path is equivalent
|
||
to the appended path. If root directory is present, the result is
|
||
the root directory and relative path rebased on top of the root name
|
||
of the source path. Otherwise, the behavior is similar to v3. (<a href="https://github.com/boostorg/filesystem/issues/214">#214</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> now converts directory
|
||
separators to preferred separators in the root name of the normalized
|
||
paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Optimized overloads of <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">assign</span></code>,
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">append</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">concat</span></code>
|
||
and the corresponding operators to avoid unnecessary path copying
|
||
and reduce the amount of code redundancy.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On POSIX systems, fixed <code><span class="identifier">absolute</span><span class="special">(</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">base</span><span class="special">)</span></code> returning a path with root name
|
||
<code><span class="identifier">base</span><span class="special">.</span><span class="identifier">root_name</span><span class="special">()</span></code>
|
||
if <code><span class="identifier">p</span></code> starts with
|
||
a root directory. In such a case <code><span class="identifier">p</span></code>
|
||
is already an absolute path and should be returned as is.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">create_directories</span></code>
|
||
no longer reports an error if the input path consists entirely of
|
||
dot (".") and dot-dot ("..") elements. The implementation
|
||
is no longer using recursion internally and therefore is better protected
|
||
from stack overflow on extremely long paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, <code><span class="identifier">remove</span></code>
|
||
now supports deleting read-only files. The operation will attempt
|
||
to reset the read-only attribute prior to removal. Note that this
|
||
introduces a possibility of the read-only attribute being left unset,
|
||
if the operation fails and the original value of the attribute fails
|
||
to be restored. This also affects <code><span class="identifier">remove_all</span></code>.
|
||
(<a href="https://github.com/boostorg/filesystem/issues/216">#216</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">remove_all</span></code> now returns
|
||
<code><span class="keyword">static_cast</span><span class="special">&lt;</span>
|
||
<span class="identifier">uintmax_t</span> <span class="special">&gt;(-</span><span class="number">1</span><span class="special">)</span></code>
|
||
in case of error, similar to C++17 std::filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed a linking error about unresolved references to Boost.ContainerHash
|
||
functions when user's code includes <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">path</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
but not <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container_hash</span><span class="special">/</span><span class="identifier">hash</span><span class="special">.</span><span class="identifier">hpp</span></code> and the compiler is set to
|
||
preserve unused inline functions. (<a href="https://github.com/boostorg/filesystem/issues/215">#215</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for MSVC and compatible compilers eliminating
|
||
path globals cleanup in release builds. This could lead to a memory
|
||
leak if Boost.Filesystem shared library was repeatedly loaded and
|
||
unloaded in the process. (<a href="https://github.com/boostorg/filesystem/issues/217">#217</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/894">PR#894</a> Optimization and refactoring of rtree queries.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/913">PR#913</a> DynamicGeometry and GeometryCollection support
|
||
in various algorithms (undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/922">PR#922</a> DynamicGeometry and GeometryCollection support
|
||
in distance (undocumented for now).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/867">#867</a> Poor performance of rtree query iterator with
|
||
nearest predicate for big k.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/870">#870</a> Compilation error in boost::geometry::self_turns.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/896">#896</a> Assertion failure in get_turns with BOOST_GEOMETRY_NO_ROBUSTNESS.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/906">PR#906</a> Invalid result of buffer on macos-11 with
|
||
clang-12.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/921">PR#921</a> Compilation errors with c++20 (various compilers)
|
||
and gcc-5.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes in set operations and buffer.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Standalone mode of the library is deprecated.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow external libraries to forward declare <code><span class="identifier">value_to</span></code>
|
||
and <code><span class="identifier">value_from</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed signed integer overflow in number parsing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add support for <code><span class="special">/</span><span class="identifier">Zc</span><span class="special">:</span><span class="identifier">implicitNoexcept</span><span class="special">-</span></code> on MSVC.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lambda2/">Lambda2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added special cases in <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> and <code><span class="keyword">operator</span><span class="special">&gt;&gt;</span></code> when the first argument is
|
||
a stream, to allow <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span>
|
||
<span class="special">&lt;&lt;</span> <span class="identifier">_1</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">-&gt;*</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">first</span></code>, <code><span class="identifier">second</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
General changes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Updated detection of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span></code>
|
||
specializations for <code><span class="keyword">char16_t</span></code>
|
||
and <code><span class="keyword">char32_t</span></code> for
|
||
compatibility with C++17 and later. (<a href="https://github.com/boostorg/log/pull/159">PR#159</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for C++17 <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byte</span></code>
|
||
type to receive methods of the inter-process message queue.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, when building the library for Windows 8 or later,
|
||
the library will use <code><span class="identifier">nt62</span></code>
|
||
tag in the version namespace to denote the target OS ABI. For
|
||
example, the version namespace could be named as <code><span class="identifier">v2_mt_nt62</span></code>. This name will
|
||
be part of all symbols exported by the library. Use the <code><span class="identifier">BOOST_USE_WINAPI_VERSION</span></code>
|
||
macro consistenly when building Boost and your code to request
|
||
the minimum target Windows version.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improved performance of SSSE3 and AVX2 implementations of the
|
||
<code><span class="identifier">dump</span></code> stream
|
||
manipulator.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for CMake build system. Only library build is
|
||
supported at this moment, Boost.Build is still used for running
|
||
tests.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed a race condition on POSIX systems in <code><span class="identifier">reliable_message_queue</span><span class="special">::</span><span class="identifier">open_or_create</span></code>
|
||
or the equivalent constructor. Multiple threads or processes
|
||
calling <code><span class="identifier">open_or_create</span></code>
|
||
concurrently with sending or receiving messages from the same
|
||
queue could end up corrupting the queue contents and potentially
|
||
crashing the process. (<a href="https://github.com/boostorg/log/issues/162">#162</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a workaround for <code><span class="identifier">b2</span>
|
||
<span class="identifier">install</span></code> failing on
|
||
Windows because of missing <code><span class="identifier">boost_log_setup</span></code>
|
||
library if <code><span class="identifier">BOOST_LOG_WITHOUT_SETTINGS_PARSERS</span></code>
|
||
is defined. (<a href="https://github.com/boostorg/log/issues/164">#164</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See <a href="https://www.boost.org/libs/log/doc/html/log/changelog.html">changelog</a>
|
||
for more details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add support for cubic roots.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add support for <code><span class="keyword">constexpr</span></code>
|
||
versions of various standard library math routines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add support for Bezier polynomials.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve worst-case tanh-sinh integration performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disable inadvertant use of integral types in integration routines.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Minor update for erf approximations when the result is with 2ulp
|
||
of 1.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow Bernoulli code to be used on platforms with no atomic integers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve the mode of the non-central Chi Squared distribution.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improve certain edge cases for &lt;cstdfloat&gt; complex-valued elementary
|
||
functions, see <a href="https://github.com/boostorg/math/issues/507">#507</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">contains</span></code> to
|
||
key-based indices (issue <a href="https://github.com/boostorg/multi_index/issues/35">#35</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">merge</span></code> operations
|
||
to key-based indices. The functionality goes beyond the standard
|
||
specification for (unordered) associative containers in a number
|
||
of ways, most notably:
|
||
</div>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
The source index can be of any type, including non key-based
|
||
indices.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Partial merge is provided: for instance, <code><span class="identifier">x</span><span class="special">.</span><span class="identifier">merge</span><span class="special">(</span><span class="identifier">y</span><span class="special">,</span><span class="identifier">first</span><span class="special">,</span><span class="identifier">last</span><span class="special">)</span></code> merges only the elements of
|
||
<code><span class="identifier">y</span></code> within [<code><span class="identifier">first</span></code>,<code><span class="identifier">last</span></code>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Previous versions of <code><span class="identifier">splice</span></code>
|
||
for sequenced and random access indices were destructive, i.e. elements
|
||
were copy-inserted into the destination and then erased from the
|
||
source. Now, <code><span class="identifier">splice</span></code>
|
||
is based on node transfer much as <code><span class="identifier">merge</span></code>
|
||
in key-based indices, and has been similarly extended to accept source
|
||
indices of any type: in fact, <code><span class="identifier">splice</span></code>
|
||
can be regarded as a frontend to the same functionality provided
|
||
by <code><span class="identifier">merge</span></code> in key-based
|
||
indices. For reasons of backwards compatibility, the destructive
|
||
behavior of <code><span class="identifier">splice</span></code>
|
||
has been retained in the case that the source and destination containers
|
||
have unequal allocators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The fact has been documented that index iterator types do only depend
|
||
on <code><span class="identifier">node_type</span></code> and
|
||
the position of the index in its <code><span class="identifier">multi_index_container</span></code>,
|
||
(except for hashed indices, where uniqueness/non-uniqueness is also
|
||
a dependency). This has implications on the validity of iterators
|
||
to elements transferred by <code><span class="identifier">merge</span></code>
|
||
or <code><span class="identifier">splice</span></code>. This property
|
||
is a variant of what has been called <a href="https://wg21.link/n2980">SCARY
|
||
iterators</a> in the C++ standard mailing lists. SCARYness is
|
||
currently (August 2021) not mandated for standard containers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Iterator SCARYness is now also preserved in <a href="https://www.boost.org/libs/multi_index/doc/tutorial/debug.html#safe_mode">safe
|
||
mode</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Rework rational_adaptor to remove dependency on Boost.Rational and
|
||
improve performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix issue with type_traits and clang, see <a href="https://github.com/boostorg/multiprecision/issues/383">#383</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed buggy Lehmer's GCD routine, see <a href="https://github.com/boostorg/multiprecision/issues/370">#370</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix mpc_complex constructors so that lossy conversions are explicit,
|
||
see <a href="https://github.com/boostorg/multiprecision/issues/363">#363</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct miscellaneous configuration issues (Intel intrinsic usage
|
||
and Apple clang).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct some iostream operators for unsigned char types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct mpq_rational conversions to integer types, see <a href="https://github.com/boostorg/multiprecision/issues/342">#342</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added missing <code><span class="preprocessor">#include</span>
|
||
<span class="special">&lt;</span><span class="identifier">memory</span><span class="special">&gt;</span></code> for inclusion of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">addressof</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed -Wzero-length-array warning when dealing with empty aggregates
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compilation on msvc compilers &lt;= 1920 (thanks to Alexey
|
||
Romanov aka @alexey-romanov)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added basic CMakeLists.txt support (thanks to @pdimov aka Peter Dimov)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Multiple improvements for docs, including links to https://github.com/apolukhin/pfr_non_boost
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added misc/strip_boost_namespace.sh script to remove <code><span class="identifier">boost</span><span class="special">::</span></code>
|
||
and <code><span class="identifier">BOOST_</span></code> prefixes
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Version 1.13.1
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix spelling of "epoch".
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add missing parenthesis in sparc.h (from tkoecker).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update documentation to use Rouge code styling and Amber general
|
||
style.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>Breaking Change:</strong> Change \B to be
|
||
the opposite of \b as per Perl behaviour.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Change w32_regex_traits.hpp so that windows.h is no longer included.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fxed fuzzing related issues <a href="https://github.com/boostorg/regex/issues/151">#151</a>,
|
||
<a href="https://github.com/boostorg/regex/issues/152">#152</a>,
|
||
<a href="https://github.com/boostorg/regex/issues/153">#153</a>,
|
||
<a href="https://github.com/boostorg/regex/issues/156">#156</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/system/">System</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for source locations to <code><span class="identifier">error_code</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">to_string</span></code>,
|
||
<code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">to_string</span></code>, <code><span class="identifier">error_code</span><span class="special">::</span><span class="identifier">what</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">system_error</span><span class="special">::</span><span class="identifier">what</span><span class="special">()</span></code>
|
||
now contains the source location, if present.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="identifier">E</span> <span class="special">=</span> <span class="identifier">error_code</span><span class="special">&gt;</span></code>,
|
||
a class holding either a value or an error, defined in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">result</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/utility/">Utility</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Library documentation converted to QuickBook (thanks to Alan de Freitas,
|
||
<a href="https://github.com/boostorg/utility/pull/79">PR#79</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">variant2</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">unsafe_get</span><span class="special">&lt;</span><span class="identifier">I</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">visit_by_index</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_78_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_7_2">B2
|
||
version 4.7.2</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_78_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.6.3, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_78_0.acknowledgements">
|
||
<h3><span class="link">Acknowledgements</span></h3>
|
||
<p>
|
||
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
|
||
</p>
|
||
</div>
|
||
</description></item><item><title>Version 1.77.0</title><link>https://www.boost.org/users/history/version_1_77_0.html</link><guid>https://www.boost.org/users/history/version_1_77_0.html</guid><pubDate>Wed, 11 Aug 2021 14:25:13 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_77_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/describe/">Describe</a>:</span> A C++14 reflection
|
||
library, from Peter Dimov. Provides macros for describing enumerators and
|
||
struct/class members, and primitives for querying this information.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lambda2/">Lambda2</a>:</span> A C++14, dependency-free,
|
||
single header lambda library, from Peter Dimov. Allows simple function
|
||
objects to be constructed via expressions such as <code><span class="identifier">_1</span>
|
||
<span class="special">+</span> <span class="number">5</span></code>,
|
||
<code><span class="identifier">_1</span> <span class="special">%</span>
|
||
<span class="number">2</span> <span class="special">==</span> <span class="number">0</span></code>, <code><span class="identifier">_1</span>
|
||
<span class="special">&gt;</span> <span class="identifier">_2</span></code>,
|
||
or <code><span class="identifier">_1</span> <span class="special">==</span>
|
||
<span class="char">' '</span> <span class="special">||</span> <span class="identifier">_1</span> <span class="special">==</span> <span class="char">'\t'</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_77_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">anys</span><span class="special">::</span><span class="identifier">basic_any</span></code> - a data type with customizable
|
||
Small Object Optimization whose instances can hold instances of any
|
||
type that satisfies ValueType requirements (many thanks to Ruslan
|
||
Arutyunyan @rarutyun). If you are not sure that you really need it,
|
||
then use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> instead.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started using GithubActions CI for additional testing
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added support for cancellation of individual asynchronous operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">associator</span></code>
|
||
trait, used to generically forward associators.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed all asynchronous operations implemented in Asio to invoke
|
||
their completion handlers as rvalue references.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added support for asynchronous operations with multiple completion
|
||
signatures.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="keyword">operator</span><span class="special">&amp;&amp;</span></code>
|
||
and <code><span class="keyword">operator</span><span class="special">||</span></code>
|
||
for <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>,
|
||
to allow coroutines to be trivially awaited in parallel.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_tuple</span></code>
|
||
completion token adapter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">append</span></code>
|
||
completion token adapter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">prepend</span></code>
|
||
completion token adapter.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">deferred</span></code>
|
||
completion token, whicih allows deferred execution of asynchronous
|
||
operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">parallel_group</span></code>
|
||
class and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">make_parallel_group</span></code>
|
||
function.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>,
|
||
which allows eager execution and synchronisation of asynchronous
|
||
operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code>
|
||
class template, a C++20 coroutine primitive with the ability to combine
|
||
both asynchronous waiting (<code><span class="identifier">co_await</span></code>)
|
||
and yielding (<code><span class="identifier">co_yield</span></code>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added move assignment 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">co_spawn</span></code>
|
||
to <code><span class="identifier">dispatch</span></code> the coroutine's
|
||
initial step to the executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enabled additional optimisations for <code><span class="identifier">any_executor</span></code>
|
||
and <code><span class="identifier">any_io_executor</span></code>
|
||
when used with asynchronous operations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added the <code><span class="identifier">nodiscard</span></code>
|
||
attribute to <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Increased the number of cached slots in the default recycling allocator.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed the default allocator behaviour to respect alignment requirements,
|
||
to support over-aligned types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured the result strings are always initialised in reverse name
|
||
resolution.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed recursive template instantiation issues in <code><span class="identifier">use_awaitable_t</span><span class="special">::</span><span class="identifier">executor_with_default</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed the <code><span class="identifier">any_io_executor</span></code>
|
||
equality operators to correctly return a result based on the target
|
||
executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code>
|
||
to avoid using a potentially moved-from executor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured <tt>gcc</tt> tests are not used for <tt>clang</tt>
|
||
when detecting compiler features.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Disabled coroutines support for the <tt>clang</tt> shipped
|
||
with MSVC.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed compatibility with recent LibreSSL when <code><span class="identifier">OPENSSL_NO_SSL_INTERN</span></code>
|
||
is defined.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">posix</span><span class="special">::</span><span class="identifier">basic_stream_descriptor</span></code> move operations
|
||
to work with non-defaulted executors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Consult the <a href="https://www.boost.org/doc/libs/1_77_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 <code><span class="identifier">make_atomic_ref</span></code>
|
||
and <code><span class="identifier">make_ipc_atomic_ref</span></code>
|
||
factory functions for constructing atomic reference objects.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added C++17 template argument deduction guides for <code><span class="identifier">atomic_ref</span></code> and <code><span class="identifier">ipc_atomic_ref</span></code>
|
||
to allow omitting template arguments when they can be deduced from
|
||
constructor arguments.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
This maintenance update brings minor bug fixes and updated CI reporting.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
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/conversion/">Conversion</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">implicit_cast</span></code> is now <code><span class="keyword">constexpr</span></code> (<a href="https://github.com/boostorg/conversion/issues/25">#25</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed broken links (<a href="https://github.com/boostorg/conversion/pull/23">PR#23</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started using GithubActions CI for additional testing
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">uncaught_exceptions</span><span class="special">.</span><span class="identifier">hpp</span></code> has been modified for compatibility
|
||
with Mac OS 10.4 and older. (<a href="https://github.com/boostorg/core/pull/92">PR#92</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
More runtime checks for malformed ELFs in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code> use info from <code><span class="special">.</span><span class="identifier">dynsym</span></code>
|
||
ELF section if <code><span class="special">.</span><span class="identifier">symtab</span></code>
|
||
is empty or missing
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
List protected ELF symbols in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">library_info</span></code>
|
||
as they are available for import (<a href="https://github.com/boostorg/dll/issues/50">#50</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Remove unneeded convert from <code><span class="keyword">wchar_t</span></code>
|
||
to char on POSIX environment, thanks to Vladislav Shchapov (<a href="https://github.com/boostorg/dll/pull/49">PR#49</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started using GithubAction CI for additional testing
|
||
</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>Introducing Boost.Filesystem v4.</strong>
|
||
This new version of the library removes all deprecated features of
|
||
v3 and also makes a number of breaking API changes intended to make
|
||
Boost.Filesystem more compatible with std::filesystem introduced
|
||
in C++17. The differences are described in the release notes and
|
||
documentation using <strong>v3</strong> and <strong>v4</strong> tags and are also summarised in a separate
|
||
section. Users can select Boost.Filesystem version by defining <code><span class="identifier">BOOST_FILESYSTEM_VERSION</span></code> macro
|
||
to either 3 or 4 when compiling their code. There is no need to separately
|
||
compile Boost.Filesystem for each library version - a single binary
|
||
supports both v3 and v4. Users should avoid using both v3 and v4
|
||
in the same application as this can lead to subtle bugs. Currently,
|
||
v3 is the default. In a future release v4 will become the default,
|
||
and eventually v3 will be removed. v4 is functional, but it is still
|
||
a work in progress and there may be breaking API changes in the future.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">filename</span></code>,
|
||
<code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code>
|
||
no longer consider root name or root directory of the path as a filename
|
||
if the path only consists of those components. For example, on Windows
|
||
<code><span class="identifier">path</span><span class="special">(</span><span class="string">"C:"</span><span class="special">).</span><span class="identifier">filename</span><span class="special">()</span></code>
|
||
used to return "C:" and <code><span class="identifier">path</span><span class="special">(</span><span class="string">"C:\\"</span><span class="special">).</span><span class="identifier">filename</span><span class="special">()</span></code> used to return "\" and
|
||
both will return an empty path now. (<a href="https://github.com/boostorg/filesystem/issues/88">#88</a>, <a href="https://github.com/boostorg/filesystem/issues/194">#194</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">stem</span></code>
|
||
and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">extension</span></code> no longer treat a filename
|
||
that starts with a dot and has no other dots as an extension. Filenames
|
||
starting with a dot are commonly treated as filenames with an empty
|
||
extension. The leading dot is used to indicate a hidden file on most
|
||
UNIX-like systems. (<a href="https://github.com/boostorg/filesystem/issues/88">#88</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Improved support for various
|
||
path prefixes on Windows. Added support for local device prefix ("\\.\")
|
||
and experimental support for NT path prefix ("\??\"). The
|
||
prefixes will be included in the root name of a path. Note that using
|
||
the prefixes with Boost.Filesystem v3 can lead to surprising results
|
||
(e.g. <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\.\\"</span><span class="special">).</span><span class="identifier">stem</span><span class="special">()</span>
|
||
<span class="special">==</span> <span class="string">"\\\\"</span></code>).
|
||
It is recommended to use the prefixes only with Boost.Filesystem
|
||
v4.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reworked <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> implementation
|
||
to eliminate some cases of duplicate dot (".") elements
|
||
in the normalized paths.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added runtime detection of
|
||
the <code><span class="identifier">statx</span></code> and <code><span class="identifier">getrandom</span></code> system calls on Linux.
|
||
This can be useful if the syscall is present at compile time but
|
||
fails with <code><span class="identifier">ENOSYS</span></code>
|
||
at run time (for example, in Docker containers that restrict the
|
||
syscall, even if available on the host). (<a href="https://github.com/boostorg/filesystem/issues/172">#172</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added support for disabling
|
||
usage of various system APIs at library build time. This can be useful
|
||
when a certain API is detected as present by the library configuration
|
||
scripts but must not be used for some reason (for example, when runtime
|
||
detection does not work on the target system). See the description
|
||
of configuration macros in the library documentationfor for more
|
||
details.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">synchronize_data</span></code>
|
||
and <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">synchronize</span></code>
|
||
options for the <code><span class="identifier">copy_file</span></code>
|
||
operation. These options allow to synchronize the written data and
|
||
attributes with the permanent storage. These options are expensive
|
||
in terms of performance, but allow to ensure reliability of the copied
|
||
data. Note that <code><span class="identifier">copy_file</span></code>
|
||
performed implicit data synchronization on POSIX systems since Boost.Filesystem
|
||
1.74.0. This release adds support for more platforms and disables
|
||
data synchronization by default while allowing the caller to explicitly
|
||
request it. (<a href="https://github.com/boostorg/filesystem/issues/186">#186</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added handling of <code><span class="identifier">EINTR</span></code>
|
||
error code on POSIX systems for some system calls issued internally.
|
||
In particular, <code><span class="identifier">EINTR</span></code>
|
||
could have been ignored on <code><span class="identifier">close</span></code>,
|
||
which on HP-UX would result in a leaked file descriptor.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the <code><span class="identifier">copy_file</span></code>
|
||
implementations based on Linux <code><span class="identifier">sendfile</span></code>
|
||
and <code><span class="identifier">copy_file_range</span></code>
|
||
system calls, added handling of error codes indicating that a particular
|
||
filesystem does not support the system call and fall back to the
|
||
generic <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop. This should fix <code><span class="identifier">copy_file</span></code> failing on <a href="https://www.ecryptfs.org/">eCryptFS</a>
|
||
and possibly other filesystems. (<a href="https://github.com/boostorg/filesystem/issues/184">#184</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">copy_file_range</span></code>
|
||
system call is now used since Linux kernel 4.5, whereas previously
|
||
it was only enabled since 5.3. The <code><span class="identifier">copy_file</span></code>
|
||
implementation will fall back to <code><span class="identifier">sendfile</span></code>
|
||
or <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop if <code><span class="identifier">copy_file_range</span></code>
|
||
fails to copy a given file across filesystems.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The <code><span class="identifier">copy_file</span></code> implementations
|
||
based on Linux <code><span class="identifier">sendfile</span></code>
|
||
and <code><span class="identifier">copy_file_range</span></code>
|
||
system calls will not be used on filesystems that are known to contain
|
||
files with generated content. These system calls are incompatible
|
||
with such files, and copying them would result in zero-sized files.
|
||
The generic <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop will be used instead.
|
||
Currently, the blacklisted filesystems are: procfs, sysfs, tracefs
|
||
and debugfs.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In the <code><span class="identifier">copy_file</span></code>
|
||
implementation based on <code><span class="identifier">read</span></code>/<code><span class="identifier">write</span></code> loop, increased the maximum
|
||
size of the buffer used for temporary storage and take into account
|
||
the target filesystem block size for more optimal performance.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows CE, calling <code><span class="identifier">current_path</span></code>
|
||
to obtain the current path for a process will now fail with an error
|
||
instead of returning successfully with a root path. This platform
|
||
does not support current directory. Changing the current path was
|
||
already failing similarly in previous releases of Boost.Filesystem.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <code><span class="identifier">canonical</span></code>, fixed
|
||
the check for a symlink referencing a directory above root, if an
|
||
earlier symlink was resolved to an absolute path with a different
|
||
root from the original path.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <code><span class="identifier">canonical</span></code>, added
|
||
a limit for the maximum number of symlinks that can be resolved during
|
||
the call. The limit is currently at least 40 symlinks.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, <code><span class="identifier">canonical</span></code>
|
||
and <code><span class="identifier">weakly_canonical</span></code>
|
||
will now use <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">preferred_separator</span></code>
|
||
for the root directory separator in the resulting paths. This fixes
|
||
"file not found" errors caused by Windows API not handling
|
||
generic separators in UNC paths and paths that start with the Win32
|
||
filesystem prefix ("\\?\"). (<a href="https://github.com/boostorg/filesystem/issues/87">#87</a>, <a href="https://github.com/boostorg/filesystem/issues/187">#187</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<strong>New:</strong> Added <code><span class="identifier">weakly_canonical</span></code>
|
||
overloads taking <code><span class="identifier">base</span></code>
|
||
path as an argument.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, <code><span class="identifier">weakly_canonical</span></code>
|
||
no longer fails with an error if the input path contains elements
|
||
that do not exist in the filesystem but are cancelled by a subsequent
|
||
dot-dot ("..") element. For example, <code><span class="identifier">weakly_canonical</span><span class="special">(</span><span class="string">"C:\\a\\.."</span><span class="special">)</span></code> would previously fail if "C:\a"
|
||
directory did not exist. (<a href="https://github.com/boostorg/filesystem/issues/201">#201</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
In <code><span class="identifier">read_symlink</span></code> on
|
||
Windows, corrected reparse point handling. The operation would return
|
||
an empty path for some mount points (for example, created by <a href="https://www.box.com/">Box</a> cloud storage driver) and
|
||
directory junction points that had empty print names. The new implementation
|
||
now parses substitute name of the reparse point and attempts to reconstruct
|
||
a Win32 path from it. (<a href="https://github.com/boostorg/filesystem/issues/187">#187</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, file streams provided in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">fstream</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
will use wide character paths on libc++ versions 7.0 and higher,
|
||
when the standard library supports opening files with wide character
|
||
paths. (<a href="https://github.com/boostorg/filesystem/issues/181">#181</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
On Windows, creating symlinks should no longer require elevated privileges,
|
||
if Windows is configured in <a href="https://docs.microsoft.com/en-us/windows/apps/get-started/enable-your-device-for-development">Developer
|
||
mode</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
With some compilers, global objects used internally in Boost.Filesystem
|
||
are now destroyed after user's global destructors are called. This
|
||
allows to call Boost.Filesystem methods during the program termination
|
||
stage. In particular, this concerns the path locale that is used
|
||
for character code conversion and can be installed by calling <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">imbue</span></code>. The supported compilers
|
||
include MSVC, GCC and Clang, as well as other compilers that support
|
||
customizing program initialization order through <code><span class="preprocessor">#pragma</span>
|
||
<span class="identifier">section</span></code> (for MSVC-compatible
|
||
compilers) or <code><span class="identifier">__attribute__</span>
|
||
<span class="special">((</span><span class="identifier">init_priority</span><span class="special">))</span></code> (for GCC-compatible compilers).
|
||
</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/812">PR#812</a> Umbrella strategies for distance and comparable_distance
|
||
(undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/840">PR#840</a> Umbrella strategies for various algorithms
|
||
(undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/850">PR#850</a> Introduced DynamicGeometry and GeometryCollection
|
||
concepts and support in some algorithms (undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/855">PR#855</a> Various improvements related to strategies.
|
||
Default strategies are now included with algorithms.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/865">#865</a> Exception thrown in rtree serialization.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/439">#439</a> Invalid box spherical area computation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/838">#838</a> Invalid result of union_().
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/851">#851</a> Invalid geographic disjoint segment/box result.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/861">#861</a> Invalid result of intersection().
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/832">PR#832</a> Fixed box spherical and geographic area computation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/853">PR#853</a> Fixed geographic disjoint segment/box.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/866">PR#866</a> Fixed serialization of rtree containing lesser
|
||
number of elements in root node than minimum.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/886">PR#886</a> Fixed knn rtree query bug causing it to be
|
||
slow for big k.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes in set operations and buffer.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">value_to</span></code> supports
|
||
<code><span class="identifier">TupleLike</span></code> types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">value_to</span></code> and <code><span class="identifier">value_from</span></code> support <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code> and similar types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Implicit conversion operator from <code><span class="identifier">string</span></code>
|
||
to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specializations for json types.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed allocation errors in <code><span class="identifier">object</span></code>
|
||
and <code><span class="identifier">key_value_pair</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed crash when constructing <code><span class="identifier">array</span></code>
|
||
from a pair of iterators that form an empty range.
|
||
</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 assignment to an int of a floating point value that is out
|
||
of representable range for int.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started using GithubActions CI for additional testing
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation for riscv32 target. (<a href="https://github.com/boostorg/log/pull/150">PR#150</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">mp_intersperse</span></code>,
|
||
<code><span class="identifier">mp_split</span></code>, <code><span class="identifier">mp_join</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>
|
||
Maintenance work.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
A MurMur Hash based implementation of hash_combine() is now used
|
||
to reduce collisions count and improve quality of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">hash_value</span><span class="special">()</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Visual Studio 2017 now supported in C++14 mode (thanks to Denis Mikhailov
|
||
aka @denzor200)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Issues found by inspect tool were fixed
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed some warnings, including removal of extra semicolons in include/boost/pfr/detail/fields_count.hpp
|
||
(<a href="https://github.com/boostorg/pfr/issues/72">#72</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added a compile time assert for inherited types (thanks to Denis
|
||
Mikhailov aka @denzor200)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Reflection of aggregates with non movable fields is now possible
|
||
if guaranteed copy elision is on
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed spelling issues
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Started using GithubActions CI for additional testing
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/property_tree/">PropertyTree</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
This is a maintenance release.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Extend compiler coverage in CI.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix Boost compatibility for CMakeLists.txt.
|
||
</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 conversion operator from <code><span class="identifier">error_category</span></code>
|
||
to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_category</span></code> has been improved
|
||
and no longer requires <code><span class="special">&lt;</span><span class="identifier">map</span><span class="special">&gt;</span></code>
|
||
or <code><span class="special">&lt;</span><span class="identifier">mutex</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The comparison operators of <code><span class="identifier">error_category</span></code>
|
||
are now inline friends instead of member functions (a side effect
|
||
of the previous change.)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">error_condition</span></code> now
|
||
defers calling <code><span class="identifier">generic_category</span><span class="special">()</span></code> to avoid instantiating the object
|
||
until it's actually needed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">failed</span></code> and <code><span class="identifier">error_condition</span><span class="special">::</span><span class="identifier">message</span></code>
|
||
have been undeprecated, and <code><span class="keyword">operator</span>
|
||
<span class="keyword">bool</span><span class="special">()</span></code>
|
||
now once again returns <code><span class="identifier">failed</span><span class="special">()</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The system category now doesn't call <code><span class="identifier">generic_category</span><span class="special">()</span></code>, to avoid instantiating the object.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The return value of <code><span class="identifier">default_error_condition</span></code>
|
||
changes in some cases into an <code><span class="identifier">error_condition</span></code>
|
||
from the generic category, instead of from the system category. This
|
||
happens on POSIX when the input <code><span class="identifier">error_code</span></code>
|
||
is from the system category and does not correspond to any <code><span class="identifier">errc_t</span></code> value.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The interoperability of <code><span class="identifier">error_code</span></code>
|
||
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code> has been improved substantially.
|
||
It is now possible to construct <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code>
|
||
from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span></code>, and it's possible to
|
||
pass <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">system</span><span class="special">::</span><span class="identifier">error_code</span></code> to functions taking
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
A stream insertion operator for <code><span class="identifier">error_condition</span></code>
|
||
has been added.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/uuid/">Uuid</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">to_chars</span></code> for
|
||
writing uuid strings without allocating (<a href="https://github.com/boostorg/uuid/pull/116">PR#116</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_77_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_6_1">B2
|
||
version 4.6.1</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_77_0.compilers_tested">
|
||
<h3><span class="link">Compilers Tested</span></h3>
|
||
<p>
|
||
Boost's primary test compilers are:
|
||
</p>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Linux:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Clang: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++11: 3.4, 11.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clang, C++20: 11.0.0, 12.0.0, 13.0.0
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC: 4.6.3, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++11: 4.7.3, 4.8.5, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
GCC, C++20: 8.0.1, 9.1.0, 10, 11
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
OS X:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Apple Clang: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++11: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++14: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++17: 11.0.3
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Apple Clang, C++20: 11.0.3
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Windows:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_77_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.76.0</title><link>https://www.boost.org/users/history/version_1_76_0.html</link><guid>https://www.boost.org/users/history/version_1_76_0.html</guid><pubDate>Fri, 16 Apr 2021 21:05:27 +0000</pubDate><description>
|
||
|
||
|
||
<div id="version_1_76_0.new_libraries">
|
||
<h3><span class="link">New Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
No new libraries
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_76_0.updated_libraries">
|
||
<h3><span class="link">Updated Libraries</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">scope_id_type</span></code> type alias.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">port_type</span></code> type alias.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specialisations for IP addresses.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">hash</span></code> specialisations for <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span><span class="special">&lt;&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Refactored SFINAE usage to improve compile times.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added friendship support to customisation points, and made most customisations
|
||
private.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Changed <code><span class="identifier">any_io_executor</span></code>
|
||
to a "strong typedef"-style class.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">as_single</span></code>
|
||
to work with handler hook deprecation.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured pthread condition variable attributes are cleaned up on all
|
||
platforms.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Clarified thread safety notes on sockets and descriptors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured <code><span class="identifier">errno</span></code> is
|
||
not overwritten if <code><span class="identifier">socket</span><span class="special">()</span></code> fails on macOS/FreeBSD.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed work tracking for <code><span class="identifier">io_context</span></code>
|
||
and <code><span class="identifier">thread_pool</span></code> executors
|
||
when move-assigned.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Ensured internal <code><span class="identifier">call_stack</span></code>
|
||
objects are accessed only from implementation files.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed I/O object move-assignment to ensure the executor is left in
|
||
a valid state.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed detection of compiler support for defaulted template argument
|
||
on functions with MSVC.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Prevented the <code><span class="identifier">blocking</span><span class="special">.</span><span class="identifier">always</span></code>
|
||
property from being used with <code><span class="identifier">strand</span><span class="special">&lt;&gt;</span></code>, as it did not produce the
|
||
correct semantics.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Removed deprecated file <tt>asio/impl/src.cpp</tt>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed compilation with MSVC for ARM. (<a href="https://github.com/boostorg/atomic/pull/49">PR#49</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 minor bug fixes and revamped CI reporting.
|
||
</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/bind/">Bind</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add support for using the standard C++11 placeholders with <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">apply</span></code> to use variadic templates
|
||
and perfect forwarding.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/continer/">Container</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added [[no-discard]] attribute in all containers to catch bugs related
|
||
to unused return values.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced default standard exception classes with Boost.Container
|
||
own classes, reducing considerably the included files overhead. Example:
|
||
in MSVC 19 <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">container</span><span class="special">/</span><span class="identifier">vector</span><span class="special">.</span><span class="identifier">hpp</span></code>
|
||
preprocessed file size reduces from 1,5MB to 930KB. If you still
|
||
want to use standard exception classes, you can define <code><span class="identifier">BOOST_CONTAINER_USE_STD_EXCEPTIONS</span></code>
|
||
before using any Boost.Container class.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs/issues:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/102">GitHub
|
||
#102: <em>"flat_map::insert ambiguous with initializer
|
||
list &amp; pairs that need to convert"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/139">GitHub
|
||
#139: <em>"flat_map merge and iterators"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/141">GitHub
|
||
#141: <em>"small_vector does not propagate no throw
|
||
properties of move operation of contained type"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/164">GitHub
|
||
#164: <em>"Compile error when using <code><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">map</span></code> with a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code>; works when using a
|
||
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code>"</em></a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/container/issues/171">GitHub
|
||
#171: <em>"deque::clear() uses undefined behaviour"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Add implicit conversion between compatible reference wrappers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">cmath</span><span class="special">.</span><span class="identifier">hpp</span></code>, a portable implementation
|
||
of the floating point classification functions from <code><span class="special">&lt;</span><span class="identifier">cmath</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>, a portable implementation
|
||
of the C++20 standard header <code><span class="special">&lt;</span><span class="identifier">bit</span><span class="special">&gt;</span></code>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">BOOST_TEST_EQ</span></code>,
|
||
<code><span class="identifier">BOOST_TEST_NE</span></code> for
|
||
character types under C++20.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Revise allocator access utilities (now support VS2013, and no workarounds
|
||
use <code><span class="identifier">allocator_traits</span></code>.)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>BREAKING CHANGE</strong>: <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">import</span></code>
|
||
was renamed to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">import_symbol</span></code>
|
||
to avoid collision with C++20 <code><span class="identifier">import</span></code>
|
||
keyword.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Updated docs, including FAQ section.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Updated compatibility with WASI platform. (<a href="https://github.com/boostorg/filesystem/pull/169">PR#169</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed an exception being thrown by <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code>
|
||
if the path is "////". (<a href="https://github.com/boostorg/filesystem/issues/176">#176</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <code><span class="identifier">create_directories</span></code>
|
||
disregarding errors from file status query operations issued internally.
|
||
This could result in incorrect error codes returned by <code><span class="identifier">create_directories</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/182">#182</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/670">PR#670</a> New IOs to_wkt() and from_wkt() (thanks to
|
||
Baidyanath Kundu).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/756">PR#756</a> Non cartesian and robust convex hulls.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/768">PR#768</a> Umbrella strategies for relops, setops, index,
|
||
buffer and more (undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/797">PR#797</a> New azimuth() algorithm.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/801">PR#801</a> Improved accuracy in geographic area computations.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/820">PR#820</a> Parameter scale added to svg_mapper.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/808">PR#808</a> Fixed compilation error with rtree serialization
|
||
enabled (thanks to Tristan Carel).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/815">PR#815</a> Fixed issue in buffer().
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Various fixes in set operations and buffer.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Breaking changes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Removed strategy convex_hull::graham_andrew.
|
||
</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>
|
||
BREAKING: In next release, we are going to drop support for GCC 5.
|
||
We will 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 release contains critical fixes, please check that your results
|
||
are not affected.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
See <a href="https://www.boost.org/libs/histogram/doc/html/histogram/history.html">Release
|
||
Notes</a> for details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/intrusive/">Intrusive</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Reduced compile-time dependencies:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">linear_slist_algorithms</span></code>
|
||
use a simple node_ptr instead of std::pair on return.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">list</span></code>/<code><span class="identifier">slist</span></code> use <code><span class="keyword">operator</span>
|
||
<span class="special">&lt;</span></code>/<code><span class="keyword">operator</span>
|
||
<span class="special">==</span></code> instead of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">equal_to</span></code>/<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">less</span></code>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed <a href="https://github.com/boostorg/intrusive/issues/54">GitHub
|
||
#54: <em>set.rbegin() looks like O(log(N))</em></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>
|
||
Added <code><span class="keyword">wchar_t</span></code> API support
|
||
for named resources in operating systems that offer native wide character
|
||
API (e.g. Windows). The following classes were updated with <code><span class="keyword">wchar_t</span></code> name support:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">file_mapping</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">managed_mapped_file</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">managed_shared_memory</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">managed_windows_shared_memory</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">shared_memory_object</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">windows_shared_memory_object</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">file_lock</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_condition</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_condition_any</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_mutex</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_recursive_mutex</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_semaphore</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_sharable_mutex</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">named_upgradable_mutex</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<code><span class="identifier">message_queue</span></code>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <code><span class="identifier">BOOST_INTERPROCESS_FORCE_NATIVE_EMULATION</span></code>
|
||
macro option to disable the use of generic emulation code for process
|
||
shared synchronization primitives instead of native POSIX or Winapi
|
||
functions.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed bugs:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/76">GitHub
|
||
#76 (<em>"Cygwin compilation errors"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/83">GitHub
|
||
#83 (<em>"Add BOOST_INTERPROCESS_FORCE_NATIVE_EMULATION
|
||
option"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/92">GitHub
|
||
#92 (<em>"bufferstream: Correct MSVC compilation
|
||
warning"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/pull/106">GitHub
|
||
#106 (<em>"Use fallocate on truncate_file"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/120">GitHub
|
||
#120 (<em>"segment_manager customization"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/122">GitHub
|
||
#122 (<em>"Mark constructors/assignment/swap noexcept
|
||
where possible"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/interprocess/issues/126">GitHub
|
||
#126 (<em>"_ReadWriteBarrier is deprecated warning
|
||
when compiling with clang-cl.exe"</em>)</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://cppalliance.org/pdf/C%20Plus%20Plus%20Alliance%20-%20Boost%20JSON%20Security%20Assessment%202020%20-%20Assessment%20Report%20-%2020210317.pdf">Security
|
||
Report</a> from Bishop Fox.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
(<a href="https://github.com/boostorg/json/issues/481">#481</a>) Refactored <code><span class="identifier">value_from</span></code>
|
||
implementation; user customizations are now always preferred over
|
||
library-provided overloads.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
(<a href="https://github.com/boostorg/json/issues/484">#484</a>) Fix imprecise parsing for some floating point numbers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
(<a href="https://github.com/boostorg/json/issues/485">#485</a>) Fix link errors in standalone mode, when used alongside
|
||
Boost.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
(<a href="https://github.com/boostorg/json/issues/497">#497</a>) Fix Boost.Build builds on GCC 4.8.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Dropped dependency on Boost.Math (thanks to Peter Dimov <a href="https://github.com/boostorg/lexical_cast/issues/37">#37</a>,
|
||
<a href="https://github.com/boostorg/lexical_cast/issues/39">#39</a>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixes for the CI and coverage (thanks to Sam Darwin from "The
|
||
C++ Alliance" <a href="https://github.com/boostorg/lexical_cast/issues/38">#38</a>, <a href="https://github.com/boostorg/lexical_cast/issues/42">#42</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>
|
||
Bug fixes:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Corrected a formal race condition in the thread-safe log record
|
||
queue implementation used in the <code><span class="identifier">unbounded_fifo_queue</span></code>
|
||
policy of the <code><span class="identifier">asynchronous_sink</span></code>
|
||
frontend. The race could be detected by TSAN, but it was not
|
||
a real problem on most current CPU architectures and compilers.
|
||
(<a href="https://github.com/boostorg/log/issues/139">#139</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
When copying a logger with a channel attribute (e.g. <code><span class="identifier">channel_logger</span></code>), the channel
|
||
attribute is now deep-copied from the original logger. This
|
||
means that modifying the channel in the new logger will no
|
||
longer affect the original logger.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Replaced the use of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> in template parameters
|
||
with a new tag type <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">log</span><span class="special">::</span><span class="identifier">use_std_allocator</span></code>
|
||
to silence libc++ warnings about the former being deprecated
|
||
in C++17 and later. The tag indicates that the instantiated
|
||
template should be using a specialization of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span></code> internally to allocate
|
||
dynamic memory, so the change has no functional effect. (<a href="https://github.com/boostorg/log/issues/141">#141</a>)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Boost.Log no longer defines <code><span class="identifier">__MSVCRT_VERSION__</span></code>
|
||
macro on MinGW and MinGW-w64. Defining this macro caused incompatibility
|
||
with UCRT, which is available as an option in recent MinGW-w64.
|
||
(<a href="https://github.com/boostorg/log/pull/149">PR#149</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>
|
||
<strong>Breaking Change:</strong> C++03 support is
|
||
now removed, a C++11 or later conformant compiler is now required
|
||
to use this library.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added <span class="link">Z-test</span>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Added execution policy support to univariate and bivariate statistics:
|
||
enables parallel execution (requires C++17 and <code><span class="special">&lt;</span><span class="identifier">execution</span><span class="special">&gt;</span></code>).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Big update/improvement on CI testing.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bivariate statistics now have integer support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
T-Test now has integer support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Linear regression now has integer support.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct PDF of the beta distribution at the endpoints.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct use of Stirling's approximation in certain multiprecision
|
||
cases, fixes <a href="https://github.com/boostorg/math/issues/396">#396</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Eliminate -Wimplicit-int-float-conversion on clang.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix some constexpr issues in quaternion/octonion.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Minor performance fix to tanh_sinh integration.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Update hypergeometric functions internal scaling to allow for 64-bit
|
||
(long long) exponents with multiprecision types.
|
||
</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/35">Git Issue
|
||
#35: <em>"New nothrow move traits are incomplete"</em></a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<strong>BREAKING CHANGE</strong>: Massive refactoring
|
||
and code simplification makes C++11 an absolute requirement.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use BOOST_TRY/CATCH in headers so code can be used in exception-free
|
||
environments.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct corner case in pow, fixes <a href="https://github.com/boostorg/multiprecision/issues/277">#277</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Correct exception type thrown to match docs in lsb/msb: fixes <a href="https://github.com/boostorg/multiprecision/issues/257">#257</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Allow moves and operators between related but different types (ie
|
||
types with the same allocator), fixes <a href="https://github.com/boostorg/multiprecision/issues/278">#278</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix discarding of characters for text file streams when seek or sync
|
||
functions are used and newlines were converted (e.g. on Windows)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix potential use-after-free bug when reusing (via <code><span class="identifier">open</span></code>) a file stream that has been
|
||
closed
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix potential invalid memory access when using a file stream that
|
||
has been moved or swapped to where the source had a put-back character
|
||
or was set to unbuffered mode
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix compatibility with ucrt runtime by not defining <code><span class="identifier">__MSVCRT_VERSION__</span></code>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Known issues: Read performance for text files is degraded. Binary
|
||
files and writing is unaffected.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/optional/">Optional</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed MSVC warning C4702.
|
||
</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>
|
||
BREAKING CHANGE: After a year and three major Boost releases
|
||
announcing this upcoming change, this is the FIRST RELEASE
|
||
of the v2.2 branch. This branch has a number of major breaking
|
||
changes to the Outcome v2.1 which shipped in Boost 1.75 and
|
||
earlier, see the documentation for details.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Enhancements:
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
VS2019.8 changed how to enable Coroutines, which caused Outcome
|
||
to not compile on that compiler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
If on C++ 20, we now use C++ 20 <code><span class="special">[[</span><span class="identifier">likely</span><span class="special">]]</span></code>
|
||
instead of compiler-specific markup to indicate when TRY has
|
||
likely success or failure.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
BREAKING CHANGE: Previously the value of <code><span class="identifier">spare_storage</span><span class="special">(</span><span class="keyword">const</span>
|
||
<span class="identifier">basic_result</span><span class="special">|</span><span class="identifier">basic_outcome</span> <span class="special">*)</span>
|
||
<span class="keyword">noexcept</span></code> was not propagated
|
||
over <code><span class="identifier">BOOST_OUTCOME_TRY</span></code>,
|
||
which causes things like stack backtraces captured at the point
|
||
of construction of an errored result to get dropped at every
|
||
<code><span class="identifier">TRY</span></code> point.
|
||
This has been fixed by adding an optional <code><span class="identifier">spare_storage</span></code>
|
||
to <code><span class="identifier">success_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> and <code><span class="identifier">failure_type</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code>, as well as to <code><span class="keyword">auto</span> <span class="identifier">success</span><span class="special">(</span><span class="identifier">T</span>
|
||
<span class="special">&amp;&amp;,</span> <span class="special">...)</span></code>
|
||
and <code><span class="keyword">auto</span> <span class="identifier">failure</span><span class="special">(</span><span class="identifier">T</span>
|
||
<span class="special">&amp;&amp;,</span> <span class="special">...)</span></code>.
|
||
</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>
|
||
BREAKING CHANGE <a href="https://github.com/ned14/outcome/issues/244">#244</a>
|
||
It came as a shock to learn that <code><span class="identifier">BOOST_OUTCOME_TRY</span></code>
|
||
had been broken since the inception of this library for certain
|
||
corner case code, which required a breaking change in how TRY
|
||
works. See <a href="https://boostorg.github.io/outcome/changelog.html">the
|
||
changelog in the documentation for more detail</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/parameter/">Parameter</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Added a workaround for MSVC 2015 code miscompilation when an rvalue
|
||
was used as a default value of a named parameter of a function. (<a href="https://github.com/boostorg/parameter/pull/109">PR#109</a>,
|
||
<a href="https://github.com/boostorg/log/issues/132">#132</a>)
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fixed reflection of types with missing <code><span class="keyword">const</span></code>
|
||
in SFINAE expressions in template constructor. Now reflection of
|
||
aggregates with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">chrono</span><span class="special">::</span><span class="identifier">duration</span><span class="special">&lt;???&gt;&gt;</span></code> fields works on any
|
||
Standard Library implementation, even if LWG3050 is not fixed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Comparison functions are now <code><span class="keyword">constexpr</span></code>
|
||
<a href="https://github.com/boostorg/pfr/issues/52">#52</a>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fixed numerous typos in docs (thanks to Phil Miller <a href="https://github.com/boostorg/pfr/issues/63">#63</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>
|
||
Worked around <a href="https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95888">GCC
|
||
bug</a> affecting GCC versions 9.3-10.2 (issue <a href="https://github.com/boostorg/poly_collection/issues/20">#20</a>).
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/predef/">Predef</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Version 1.13
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">ARCH_PPC_64</span></code> predef.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix <code><span class="identifier">ARCH_WORD_BITS</span><span class="special">*</span></code> redefinition warnings/errors.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">ARCH_E2K</span></code>, Elbrus
|
||
2000, architecture from Konstantin Ivlev.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix not handling recent C++ version that go above 10.x version.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Version 1.12
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Switch to using the endian.h header on OpenBSD. (Brad Smith)
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix not handling recent versions of stdcxx that go above version
|
||
9.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix including sub-BSD OS headers directly causing redef warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add CI testing of direct inclusion of all headers.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add CI testing on FreeBSD for clang and gcc.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add <code><span class="identifier">WORD_BITS</span></code> set
|
||
of predefs to detect the architecture word size. Initial implementation
|
||
inspired by submission from Mikhail Komarov.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add CI testing for Cygwin 32 and 64.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/property_tree/">PropertyTree</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Property Tree has a new maintainer.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Fix usage of deprecated Boost.Bind features.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Link to Wikipedia fixed.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Use BOOST_OVERRIDE to fix GCC warnings.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Add extensive CI testing.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/regex/">Regex</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Regex is now header only except in C++03 mode.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Support for C++03 is now deprecated.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
The library can now be used "standalone" without the rest
|
||
of Boost being present.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Better support for pre-C++11 builds on clang <a href="https://github.com/boostorg/stacktrace/issues/102">#102</a>.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bigger warning for <strong>do not use boost::stacktrace::stacktrace
|
||
in signal handlers</strong> <a href="https://github.com/boostorg/stacktrace/issues/71">#71</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/type_traits/">TypeTraits</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Fix for Visual Studio managed code projects.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Improved generated code for the double buffered case.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_76_0.updated_tools">
|
||
<h3><span class="link">Updated Tools</span></h3>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_4_1">B2
|
||
version 4.4.1</a>.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
<div id="version_1_76_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_76_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.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/geometry/">Geometry</a>:</span>
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
WARNING: Following the deprecation notice of C++03 issued with Boost
|
||
1.73, from now on the Boost.Geometry requires a capable C++14 compiler.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Improvements
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/726">PR#726</a> Umbrella strategies for area, envelope, expand
|
||
(undocumented for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/733">PR#733</a> Added example of adaptation of std::array&lt;&gt;
|
||
to Point concept (thanks to Ben FrantzDale).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/745">PR#745</a> constexpr added in geometries and arithmetic.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/747">PR#747</a> Added optional traits::make (undocumented
|
||
for now).
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/748">PR#748</a> Modernized usage of type traits.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/759">PR#759</a> MPL_ASSERT replaced with standard static_assert.
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/pull/767">PR#767</a> Modernized usage of tuple.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Solved issues
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
<a href="https://github.com/boostorg/geometry/issues/716">#716</a> Dangling proxy references.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
Bugfixes
|
||
<ul>
|
||
<li>
|
||
<div>
|
||
Various fixes in set operations and buffer.
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</li>
|
||
<li>
|
||
<div>
|
||
<span class="library"><a href="https://www.boost.org/libs/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>
|
||
</channel>
|
||
</rss>
|