2
0
mirror of https://github.com/boostorg/website.git synced 2026-02-15 13:42:13 +00:00
Files
website/users/history/in_progress.html
2023-04-06 12:26:06 +00:00

1352 lines
51 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>In Progress Releases</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="icon" href="/favicon.ico" type="image/ico" />
<link rel="stylesheet" type="text/css" href="/style-v2/section-boost.css" />
<!--[if IE 7]> <style type="text/css"> body { behavior: url(/style-v2/csshover3.htc); } </style> <![endif]-->
</head>
<!-- Don't edit this page! It's generated by site-tools/site-tools.py -->
<body>
<div id="heading">
<!--#include virtual="/common/heading.html" --> </div>
<div id="body">
<div id="body-inner">
<div id="content">
<div class="section" id="intro">
<div class="section-0">
<div class="section-title">
<h1>In Progress Releases</h1>
</div>
<div class="section-alert"><p>Note: The release notes
on this page are for releases still under development.
Please don't use this page as a source of information,
it's here for development purposes only. Everything is
subject to change.</p></div>
<div class="section-body">
<h2><span class=
"news-title">Version 1.82.0</span></h2>
<p><span class=news-date">In Progress</span></p>
<div class="news-description">
<div class="description">
<div id="version_1_82_0.notice_of_dropping_c_03_support">
<h3><span class="link">Notice
of Dropping C++03 Support</span></h3>
<p>
The following libraries will be dropping C++03 support in release 1.84, two
releases from now:
</p>
<ul>
<li>
<div>
Align
</div>
</li>
<li>
<div>
Any
</div>
</li>
<li>
<div>
Atomic
</div>
</li>
<li>
<div>
Bind
</div>
</li>
<li>
<div>
Chrono
</div>
</li>
<li>
<div>
ContainerHash
</div>
</li>
<li>
<div>
Conversion
</div>
</li>
<li>
<div>
DLL
</div>
</li>
<li>
<div>
Endian
</div>
</li>
<li>
<div>
Filesystem
</div>
</li>
<li>
<div>
Function
</div>
</li>
<li>
<div>
Functional
</div>
</li>
<li>
<div>
Io
</div>
</li>
<li>
<div>
LexicalCast
</div>
</li>
<li>
<div>
Log
</div>
</li>
<li>
<div>
Random
</div>
</li>
<li>
<div>
Ratio
</div>
</li>
<li>
<div>
SmartPtr
</div>
</li>
<li>
<div>
System
</div>
</li>
<li>
<div>
Stacktrace
</div>
</li>
<li>
<div>
Thread
</div>
</li>
<li>
<div>
Timer
</div>
</li>
<li>
<div>
TypeIndex
</div>
</li>
<li>
<div>
Typeof
</div>
</li>
<li>
<div>
Unordered
</div>
</li>
<li>
<div>
Variant
</div>
</li>
</ul>
<p>
This release (1.82) and the next (1.83) will be the last releases offering
C++03 support for the above libraries and most of their dependencies.
</p>
<p>
The new baseline requirement for the above libraries, and for most of Boost,
will be C++11. Since old compiler versions often implement C++11 only partially,
due to missing support or bugs, what compilers are considered to meet the C++11
requirement may vary by library.
</p>
<p>
However, a general rule is that if a compiler does not recognize a C++11 keyword
or syntax at all (e.g. use of <code><span class="keyword">noexcept</span></code>,
use of <code><span class="keyword">constexpr</span></code>, or defining
a <code><span class="special">=</span><span class="keyword">delete</span></code>d
function results in an immediate compile error), or if a compiler does not
provide a required C++11 header at all (e.g. trying to include <code><span class="special">&lt;</span><span class="identifier">atomic</span><span class="special">&gt;</span></code> or <code><span class="special">&lt;</span><span class="identifier">chrono</span><span class="special">&gt;</span></code>
fails), or the compiler provides a C++11 feature or a header that is completely
unusable, this compiler is not considered a C++11 compiler.
</p>
<p>
This rules out, for instance, Microsoft Visual C++ before 14.0, or GCC before
4.8.
</p>
</div>
<div id="version_1_82_0.new_libraries">
<h3><span class="link">New Libraries</span></h3>
<ul>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/msyql/">Mysql</a>:</span> a C++11 client for the MySQL
database server, based on Boost.Asio, from Reuben Perez.
</div>
</li>
</ul>
</div>
<div id="version_1_82_0.updated_libraries">
<h3><span class="link">Updated Libraries</span></h3>
<ul>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/any/">Any</a>:</span>
<ul>
<li>
<div>
Now uses <code><span class="identifier">core</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code> header instead of the deprecated
<code><span class="identifier">utility</span><span class="special">/</span><span class="identifier">enable_if</span><span class="special">.</span><span class="identifier">hpp</span></code>. Thanks to Michael Ford for
the PR <a href="https://github.com/boostorg/any/pull/25">PR#25</a>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/atomic/">Atomic</a>:</span>
<ul>
<li>
<div>
When compiled for x86 targets supporting AVX, vector instructions
are now used for 128-bit atomic loads and stores.
</div>
</li>
<li>
<div>
For 32-bit x86 targets, 64-bit atomic loads and stores with <code><span class="identifier">memory_order_seq_cst</span></code> semantics
will now issue a memory ordering instruction.
</div>
</li>
<li>
<div>
Removed <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage</span><span class="special">()</span></code>
accessors and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">storage_type</span></code>
types that were deprecated in Boost.Atomic 1.73. Users are recommended
to use <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value</span><span class="special">()</span></code>
and <code><span class="identifier">atomic</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;::</span><span class="identifier">value_type</span></code> instead.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/beast">Beast</a>:</span>
<ul>
<li>
<div>
Add <code><span class="identifier">error_code</span></code>s use
source_location
</div>
</li>
<li>
<div>
tcp_stream uses the correct executor of the timer.
</div>
</li>
<li>
<div>
error_categories use numeric ids
</div>
</li>
<li>
<div>
<code><span class="identifier">file_body</span></code> supports
seek
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/container_hash/">ContainerHash</a>:</span>
<ul>
<li>
<div>
Added an overload of <code><span class="identifier">hash_value</span></code>
for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">nullptr_t</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">is_tuple_like</span></code>
and an overload of <code><span class="identifier">hash_value</span></code>
for tuple-like types.
</div>
</li>
<li>
<div>
Changed string hashing to use <a href="https://github.com/pdimov/mulxp_hash"><code><span class="identifier">mulxp1_hash</span></code></a>. This improves
both quality and speed.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/core/">Core</a>:</span>
<ul>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">snprintf</span><span class="special">.</span><span class="identifier">hpp</span></code> header with portable definitions
of <code><span class="identifier">snprintf</span></code>, <code><span class="identifier">vsnprintf</span></code> and their <code><span class="keyword">wchar_t</span></code> counterparts.
</div>
</li>
<li>
<div>
Deprecated <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">is_same</span><span class="special">.</span><span class="identifier">hpp</span></code>
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">is_same</span></code>. The header will be removed
in a future release. Users are advised to use Boost.TypeTraits or
C++ standard library type traits instead.
</div>
</li>
<li>
<div>
Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ref</span></code> member functions and associated
methods with <code><span class="keyword">noexcept</span></code>.
</div>
</li>
<li>
<div>
Marked <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">swap</span></code> function with <code><span class="keyword">noexcept</span></code>, depending on whether the
type supports a non-throwing swap operation.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">launder</span></code>, a portable implementation
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">launder</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">BOOST_CORE_ALIGNOF</span></code>,
a portable implementation of <code><span class="keyword">alignof</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, a portable equivalent
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max_align_t</span></code>, and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">max_align</span></code>, the alignment of <code><span class="identifier">max_align_t</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">memory_resource</span></code>, a portable equivalent
of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pmr</span><span class="special">::</span><span class="identifier">memory_resource</span></code> from C++17.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">serialization</span><span class="special">.</span><span class="identifier">hpp</span></code>, a collection of primitives
allowing libraries to implement Boost.Serialization support for their
types without including a Serialization header and thereby making
their libraries depend on Serialization.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">data</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">size</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size</span></code>.
</div>
</li>
<li>
<div>
Updated <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">span</span></code> to use <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">data</span></code>
which adds support for range construction from an <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">identity</span></code>, an implementation of
<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">identity</span></code>. This facility has been
moved from Boost.Functional.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/dll/">DLL</a>:</span>
<ul>
<li>
<div>
Avoid implicit cast from size_t to uint32_t, thanks to Travers Biddle
for the PR <a href="https://github.com/boostorg/dll/pull/57">PR#57</a>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/filesystem/">Filesystem</a>:</span>
<ul>
<li>
<div>
Fixed compilation errors that could have been caused by <code><span class="identifier">path</span></code> conversion constructors being
too permissive on the accepted arguments. (<a href="https://github.com/boostorg/filesystem/issues/273">#273</a>)
</div>
</li>
<li>
<div>
<strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code>
now presesrves the trailing directory separator. (<a href="https://github.com/boostorg/filesystem/issues/271">#271</a>)
</div>
</li>
<li>
<div>
Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename_and_trailing_separators</span></code>,
which removes the filename and directory separators preceding it
from the path. This behavior is similar to <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">remove_filename</span></code>
in Filesystem <strong>v3</strong>, but is also usable
in <strong>v4</strong>.
</div>
</li>
<li>
<div>
Added <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">replace_filename</span></code>, which replaces
filename in a path.
</div>
</li>
<li>
<div>
Updated implementation of the library version selection to avoid
ODR violations. (<a href="https://github.com/boostorg/filesystem/issues/279">#279</a>)
</div>
</li>
<li>
<div>
On Windows, added a workaround for querying file attributes for files
in SMBv1 shares. Previously, directories in SMBv1 shares could have
been reported as regular files. This does not affect SMBv2 or later.
(<a href="https://github.com/boostorg/filesystem/issues/282">#282</a>)
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/geometry/">Geometry</a>:</span>
<ul>
<li>
<div>
Major improvements
<ul>
<li>
<div>
<a href="https://github.com/boostorg/geometry/pull/1045">PR#1045</a> Support geographic buffer for (multi)linestrings
and (multi)polygons
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Improvements
<ul>
<li>
<div>
<a href="https://github.com/boostorg/geometry/pull/1114">PR#1114</a> Comparable distance: Add support for dynamic
geometries
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/geometry/pull/1046">PR#1046</a> Support covered_by() for box, geometry combinations
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Solved issues
<ul>
<li>
<div>
<a href="https://github.com/boostorg/geometry/issues/705">#705</a> WKT: allow tabs and new lines
</div>
</li>
<li>
<div>
<a href="https://github.com/boostorg/geometry/issues/1109">#1109</a>, <a href="https://github.com/boostorg/geometry/issues/1108">#1108</a> Fixes for union
</div>
</li>
<li>
<div>
Various fixes in examples
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Breaking changes
<ul>
<li>
<div>
The WKT output presentation of an empty polygon is now POLYGON()
to make it consistent with other geometries
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/histogram/">Histogram</a>:</span>
<ul>
<li>
<div>
Replace <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">span</span></code> and <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">make_span</span></code>
with implementations in <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span></code>
</div>
</li>
<li>
<div>
Documentation improvements
</div>
</li>
<li>
<div>
Protect usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">min</span></code>
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">max</span></code> in some cases, contributed
by Han Jiang (min,max macros are illegially set by popular Windows
headers so we need to work around)
</div>
</li>
<li>
<div>
Added test to catch usage of unprotected min,max tokens in the library
in the future
</div>
</li>
<li>
<div>
Fixes to support latest clang-14 and deduction guides in gcc-11+
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/json/">JSON</a>:</span>
<ul>
<li>
<div>
<code><span class="identifier">set_at_pointer</span></code>.
</div>
</li>
<li>
<div>
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> support.
</div>
</li>
<li>
<div>
Caller-provided serializer storage.
</div>
</li>
<li>
<div>
<code><span class="identifier">value_to</span></code> supports
missing elements for <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code>.
</div>
</li>
<li>
<div>
Fix parser suspend inside an escape character.
</div>
</li>
<li>
<div>
Make sentinel() return a unique pointer.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/locale/">Locale</a>:</span>
<ul>
<li>
<div>
<code><span class="identifier">get_system_locale</span></code>
and dependents will now correctly favor <code><span class="error">$</span><span class="identifier">LC_ALL</span></code> over <code><span class="error">$</span><span class="identifier">LC_CTYPE</span></code> as defined by POSIX <a href="https://github.com/boostorg/locale/pull/144">PR#144</a>
</div>
</li>
<li>
<div>
<code><span class="identifier">utf8_codecvt</span><span class="special">::</span><span class="identifier">out</span></code> returns <code><span class="identifier">partial</span></code>
for trailing (UTF) surrogates
</div>
</li>
<li>
<div>
Add <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">util</span><span class="special">::</span><span class="identifier">locale_data</span></code> to parse a locale
</div>
</li>
<li>
<div>
<code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">locale</span><span class="special">::</span><span class="identifier">info</span><span class="special">::</span><span class="identifier">encoding</span><span class="special">()</span></code>
result is now in uppercase as documented, e.g. "UTF-8"
instead of "utf-8"
</div>
</li>
<li>
<div>
Support M49 country codes such as <code><span class="identifier">en_001</span></code>
or <code><span class="identifier">en_150</span></code> <a href="https://github.com/boostorg/locale/pull/148">PR#148</a>
</div>
</li>
<li>
<div>
Treat <code><span class="identifier">en_US_POSIX</span></code>
as an alias for the <code><span class="identifier">C</span></code>
locale <a href="https://github.com/boostorg/locale/pull/148">PR#148</a>
</div>
</li>
<li>
<div>
Improve error for missing segmentation support (i.e. without ICU)
<a href="https://github.com/boostorg/locale/pull/149">PR#149</a>
</div>
</li>
<li>
<div>
Fix compiler warnings
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/math/">Math</a>:</span>
<ul>
<li>
<div>
<strong>Deprecated C++11 support</strong>: We now
require C++14 as a minimum standard. Our minimum tested compiler
versions are now Clang-5, GCC-5 or MSVC-14.1.
</div>
</li>
<li>
<div>
Added Estrin's method for polynomial evaluation.
</div>
</li>
<li>
<div>
Fix various issues in non-central distributions to allow for larger
non-centralities see <a href="https://github.com/boostorg/math/pull/939">939</a>.
</div>
</li>
<li>
<div>
Added CMake install target.
</div>
</li>
<li>
<div>
Fix special_functions.hpp to disable anything which can't be used
in an exception-free environment.
</div>
</li>
<li>
<div>
Get condition number calculation working in C++14.
</div>
</li>
<li>
<div>
Fix <code><span class="keyword">constexpr</span></code> table
driven functions to avoid massive slowdown when the code is not actually
<code><span class="keyword">constexpr</span></code>, see <a href="https://github.com/boostorg/math/issues/923">923</a>.
</div>
</li>
<li>
<div>
Improve tanh_sinh boundary handling, see <a href="https://github.com/boostorg/math/pull/894">894</a>.
</div>
</li>
<li>
<div>
Add Linux arm64, s390x and Apple M1 testing, fix up test cases to
handle 128-bit long doubles.
</div>
</li>
<li>
<div>
Improve <code><span class="keyword">constexpr</span></code> math
functions to better handle infinities and NaN's.
</div>
</li>
<li>
<div>
Make the integrators const-correct.
</div>
</li>
<li>
<div>
Fix tanh_sinh integrator in case the function underflows, see <a href="https://github.com/boostorg/math/issues/898">898</a>.
</div>
</li>
<li>
<div>
Don't use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">cbrt</span></code> as some platforms still don't
support it.
</div>
</li>
<li>
<div>
Stop non-central T from raising spurious FE_INVALID exceptions, see
<a href="https://github.com/boostorg/math/pull/892">892</a>.
</div>
</li>
<li>
<div>
Fix binomial distribution edge case.
</div>
</li>
<li>
<div>
Improve ibeta handling of very small arguments, see <a href="https://github.com/boostorg/math/pull/884">884</a>.
</div>
</li>
<li>
<div>
Improve ibeta handling of infinities and NaN's, see <a href="https://github.com/boostorg/math/issues/878">878</a>.
</div>
</li>
<li>
<div>
Improve error handling in powm1, see <a href="https://github.com/boostorg/math/issues/781">781</a>.
</div>
</li>
<li>
<div>
Improve root-finder bracketing to bracket faster when the exponent
is super-large or small.
</div>
</li>
<li>
<div>
Fix root finding edge cases, see <a href="https://github.com/boostorg/math/issues/873">873</a>.
</div>
</li>
<li>
<div>
Lots of miscellaneous warning fixes.
</div>
</li>
<li>
<div>
Add assertions when using features which require C++17 for better
error messages when invoking the compiler in a lower std version.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/multi_index/doc/index.html">Multi-index Containers</a>:</span>
<ul>
<li>
<div>
Serialization now uses <code><span class="keyword">unsigned</span>
<span class="keyword">long</span></code> instead of <a href="/doc/libs/master/libs/serialization/doc/wrappers.html#collection_size_type"><code><span class="identifier">collection_size_type</span></code></a>, and
<code><span class="identifier">multi_index_container</span></code>
serialization <a href="/doc/libs/master/libs/serialization/doc/tutorial.html#versioning">class
version</a> has been bumped from 2 to 3 to reflect this change.
Reading old archives may fail for custom archive types giving special
treatment to <code><span class="identifier">collection_size_type</span></code>
values: if this is the case, globally define the macro <code><span class="identifier">BOOST_MULTI_INDEX_ENABLE_SERIALIZATION_COMPATIBILITY_V2</span></code>
to ensure backwards compatibility in reading operations.
</div>
</li>
<li>
<div>
Maintenance work.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/multiprecision/">Multiprecision</a>:</span>
<ul>
<li>
<div>
<strong>Deprecated C++11 support</strong>: We now
require C++14 as a minimum standard. Our minimum tested compiler
versions are now Clang-5, GCC-5 or MSVC-14.1.
</div>
</li>
<li>
<div>
Added a new forward declaration header.
</div>
</li>
<li>
<div>
Update Eigen interoperability so we no longer rely on Eigen's details,
see <a href="https://github.com/boostorg/multiprecision/issues/479">479</a>.
</div>
</li>
<li>
<div>
Add Cmake install target.
</div>
</li>
<li>
<div>
Fix cpp_dec_float construction from string in standalone case for
better error handling, see <a href="https://github.com/boostorg/multiprecision/issues/499">499</a>.
</div>
</li>
<li>
<div>
Remove redundent definitions when in C++17 mode, see <a href="https://github.com/boostorg/multiprecision/pull/530">530</a>.
</div>
</li>
<li>
<div>
Fix the error handling in standalone itrunc and ltrunc.
</div>
</li>
<li>
<div>
Fix potentially uninitialized storage when parsing octal strings.
</div>
</li>
<li>
<div>
Add arm64 and s390x CI testing.
</div>
</li>
<li>
<div>
Add some missing expression template unpacking code for <code><span class="identifier">powm</span></code>, see <a href="https://github.com/boostorg/multiprecision/issues/506">506</a>.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/nowide/">Nowide</a>:</span>
<ul>
<li>
<div>
Add <code><span class="identifier">convert_string</span></code>
overload accepting a (<code><span class="identifier">std</span><span class="special">::</span></code>)string instance
</div>
</li>
<li>
<div>
Add <code><span class="identifier">quoted</span></code> to output
(quoted UTF-8) paths (<code><span class="identifier">std</span><span class="special">::</span><span class="identifier">filesystem</span></code>
or <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span></code>) to streams <a href="https://github.com/boostorg/nowide/pull/170">PR#170</a>
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/pfr/">PFR</a>:</span>
<ul>
<li>
<div>
Implemented the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">is_implicitly_reflectable</span></code>
and the machinery for specializing aggregates as reflectable or not,
thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/111">PR#111</a>.
</div>
</li>
<li>
<div>
Implemented <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get</span></code>
by type of an element in the aggregate.
</div>
</li>
<li>
<div>
Implemented the <code><span class="identifier">BOOST_PFR_ENABLED</span></code>
macro to detect library support for reflection, thanks to Denis Mikhailov
for the PR <a href="https://github.com/boostorg/pfr/pull/86">PR#86</a>.
</div>
</li>
<li>
<div>
Fixed missing terminating character, thanks to Denis Mikhailov for
the PR <a href="https://github.com/boostorg/pfr/pull/114">PR#114</a>.
</div>
</li>
<li>
<div>
Fixed the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">pfr</span><span class="special">/</span><span class="identifier">config</span><span class="special">.</span><span class="identifier">hpp</span></code> compilation on older compilers,
thanks to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/118">PR#118</a>.
</div>
</li>
<li>
<div>
Workaround for broken C++17 stuctured binding in old compilers, thanks
to Denis Mikhailov for the PR <a href="https://github.com/boostorg/pfr/pull/119">PR#119</a>.
</div>
</li>
<li>
<div>
Avoid -Wzero-as-null-pointer-constant warnings, thanks to Markus
F.X.J. Oberhumer for the PR <a href="https://github.com/boostorg/pfr/pull/117">PR#117</a>.
</div>
</li>
<li>
<div>
Fixed multiple typos, thanks to Denis Mikhailov for the fixes.
</div>
</li>
<li>
<div>
Added missing <code><span class="preprocessor">#pragma</span>
<span class="identifier">once</span></code>, thanks to <a href="https://github.com/caozhanhao">caozhanhao</a> for the PR
<a href="https://github.com/boostorg/pfr/pull/121">PR#121</a>.
</div>
</li>
<li>
<div>
Multiple fixes and improvements for the docs.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/process">Process</a>:</span>
<ul>
<li>
<div>
Added management for extern processes to V2 (still experimental)
</div>
</li>
<li>
<div>
Deprecated <code><span class="identifier">wait_for</span></code>
&amp; <code><span class="identifier">wait_until</span></code>
in V1 - they will be removed in the future!
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/stacktrace/">Stacktrace</a>:</span>
<ul>
<li>
<div>
Fixed typos in docs and comments, thanks to Chocobo1 for the PR <a href="https://github.com/boostorg/stacktrace/pull/132">PR#132</a>.
</div>
</li>
<li>
<div>
Fixed multithreading flag detection for <code><span class="identifier">backtrace_create_state</span></code>
if <code><span class="identifier">BOOST_STACKTRACE_BACKTRACE_FORCE_STATIC</span></code>
is defined.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/static_string/">StaticString</a>:</span>
<ul>
<li>
<div>
Boost.Core <code><span class="identifier">string_view</span></code>
and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> interoperability
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/test/">Test</a>:</span>
<ul>
<li>
<div>
Fixed several unused variable warnings
</div>
</li>
<li>
<div>
Fixed sprintf deprecation warnings
</div>
</li>
<li>
<div>
Fixed undefined behavior in <code><span class="identifier">basic_cstring</span><span class="special">::</span><span class="identifier">rfind</span></code>
</div>
</li>
<li>
<div>
Added CI through Github Actions
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/unordered/">Unordered</a>:</span>
<ul>
<li>
<div>
<strong>Major update.</strong>
</div>
</li>
<li>
<div>
Added node-based, open-addressing containers <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_map</span></code>
and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">unordered_node_set</span></code>.
</div>
</li>
<li>
<div>
Extended heterogeneous lookup to more member functions as specified
in <a href="https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html">P2363</a>.
</div>
</li>
<li>
<div>
Replaced the previous post-mixing process for open-addressing containers
with a new algorithm based on extended multiplication by a constant.
</div>
</li>
<li>
<div>
Fixed bug in internal <code><span class="identifier">emplace</span></code>
impl where stack-local types were not properly constructed using
the allocator of the container which breaks uses-allocator construction.
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/url/">URL</a>:</span>
<ul>
<li>
<div>
Add <code><span class="identifier">url</span><span class="special">::</span><span class="identifier">format</span></code> with automatic percent-encoding
</div>
</li>
<li>
<div>
URL router example
</div>
</li>
<li>
<div>
<code><span class="identifier">set_params</span></code> convenience
function
</div>
</li>
<li>
<div>
Support implicit conversions to <code><span class="identifier">string_view</span></code>
</div>
</li>
<li>
<div>
Parsing constructors are implicit
</div>
</li>
<li>
<div>
<code><span class="identifier">string_token</span><span class="special">::</span><span class="identifier">arg</span></code> has virtual destructor and
slice protection
</div>
</li>
<li>
<div>
Support <code><span class="identifier">BOOST_URL_DISABLE_THREADS</span></code>
</div>
</li>
<li>
<div>
Improvements and Bug fixes:
<ul>
<li>
<div>
WIN32_LEAN_AND_MEAN macro redefinition warning
</div>
</li>
<li>
<div>
Comparison differentiates absent and empty components
</div>
</li>
<li>
<div>
Detect <code><span class="identifier">hier_part_rule</span></code>
with empty-port-like segments
</div>
</li>
<li>
<div>
Segments comparison as if normalized works above root
</div>
</li>
<li>
<div>
hier-part path-rootless considers invalid segments
</div>
</li>
<li>
<div>
port as number is set to 0 when it overflows
</div>
</li>
<li>
<div>
ipv4 to string overflow detection algorithm
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
<span class="library"><a href="/doc/libs/master/libs/variant/">Variant</a>:</span>
<ul>
<li>
<div>
Now uses core/addressof instead of the deprecated utility/addressof.
Thanks to Michael Ford for the PR <a href="https://github.com/boostorg/variant/pull/105">PR#105</a>.
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="version_1_82_0.updated_tools">
<h3><span class="link">Updated Tools</span></h3>
<ul>
<li>
<div>
<span class="library"><a href="/tools/build/">Build</a>:</span>
<ul>
<li>
<div>
Includes release of <a href="/tools/build/doc/html/#_version_4_9_4">B2
version 4.9.4</a>.
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="version_1_82_0.compilers_tested">
<h3><span class="link">Compilers Tested</span></h3>
<p>
Boost's primary test compilers are:
</p>
<ul>
<li>
<div>
Linux:
<ul>
<li>
<div>
Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0,
15.0.0
</div>
</li>
<li>
<div>
Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0
</div>
</li>
<li>
<div>
Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0,
14.0.0, 15.0.0
</div>
</li>
<li>
<div>
Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0,
13.0.0, 14.0.0, 15.0.0
</div>
</li>
<li>
<div>
Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0
</div>
</li>
<li>
<div>
GCC, C++03: 4.6.3, 11, 12
</div>
</li>
<li>
<div>
GCC, C++11: 4.7.3, 4.8.5, 11, 12
</div>
</li>
<li>
<div>
GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12
</div>
</li>
<li>
<div>
GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12
</div>
</li>
<li>
<div>
GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
OS X:
<ul>
<li>
<div>
Apple Clang, C++03: 11.0.3
</div>
</li>
<li>
<div>
Apple Clang, C++11: 11.0.3
</div>
</li>
<li>
<div>
Apple Clang, C++14: 11.0.3
</div>
</li>
<li>
<div>
Apple Clang, C++17: 11.0.3
</div>
</li>
<li>
<div>
Apple Clang, C++20: 11.0.3
</div>
</li>
</ul>
</div>
</li>
<li>
<div>
Windows:
<ul>
<li>
<div>
Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3
</div>
</li>
</ul>
</div>
</li>
</ul>
</div>
<div id="version_1_82_0.acknowledgements">
<h3><span class="link">Acknowledgements</span></h3>
<p>
Marshall Clow and Glen Fernandes managed this release.
</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div id="sidebar">
<!--#include virtual="/common/sidebar-common.html" --><!--#include virtual="/common/sidebar-boost.html" --> </div>
<div class="clear"></div>
</div>
</div>
<div id="footer">
<div id="footer-left">
<div id="copyright">
<p>Copyright Rene Rivera 2006-2007.</p>
</div><!--#include virtual="/common/footer-license.html" --> </div>
<div id="footer-right">
<!--#include virtual="/common/footer-banners.html" --> </div>
<div class="clear"></div>
</div>
</body>
</html>