diff --git a/doc/.htaccess b/doc/.htaccess index 748d5585..11a5095c 100644 --- a/doc/.htaccess +++ b/doc/.htaccess @@ -25,8 +25,8 @@ RewriteRule ^libs/development/libs/([^./]+)$ libs/development/libs/$1/ [R=301] # Any edits will be overwritten. # # Redirect from symbolic names to current versions. -RewriteRule ^libs/release(/.*)?$ libs/1_87_0$1 [R=303] -RewriteRule ^libs/development(/.*)?$ libs/1_87_0$1 [R=303] +RewriteRule ^libs/release(/.*)?$ libs/1_88_0$1 [R=303] +RewriteRule ^libs/development(/.*)?$ libs/1_88_0$1 [R=303] # # REDIRECT_UPDATE_END diff --git a/doc/libraries.xml b/doc/libraries.xml index 6bfa1a93..076107ca 100644 --- a/doc/libraries.xml +++ b/doc/libraries.xml @@ -1,6 +1,6 @@ - + String and text processing @@ -371,6 +371,19 @@ 11 Data + + any + libs/any/ + 1.23.0 + 1.88.0 + Any + Kevlin Henney + Antony Polukhin <antoshkka -at- gmail.com> + Safe, generic container for single values of different value types. + libs/any/ + 11 + Data + any libs/any/ @@ -419,6 +432,19 @@ 03 Containers + + array + libs/array/ + 1.17.0 + 1.88.0 + Array + Nicolai Josuttis + Marshall Clow <marshall -at- idio.com> + STL compliant container wrapper for arrays of constant size. + libs/array/ + 03 + Containers + array libs/array/ @@ -791,6 +817,19 @@ 11 Function-objects + + bind + libs/bind/ + 1.25.0 + 1.88.0 + Bind + Peter Dimov + Peter Dimov <pdimov -at- gmail.com> + boost::bind is a generalization of the standard functions std::bind1st and std::bind2nd. It supports arbitrary function objects, functions, function pointers, and member function pointers, and is able to bind any argument to a specific value or route input arguments into arbitrary positions. + libs/bind/ + 11 + Function-objects + bind libs/bind/ @@ -838,6 +877,18 @@ 11 Function-objects + + bind/mem_fn + libs/bind/ + 1.25.0 + 1.88.0 + Member Function + Peter Dimov + Generalized binders for function/object/pointers and member functions. + libs/bind/mem_fn.html + 11 + Function-objects + bind/mem_fn libs/bind/ @@ -892,6 +943,21 @@ 03 Function-objects + + bind/ref + libs/core/ + 1.25.0 + 1.88.0 + Ref + Jaako Järvi + Peter Dimov + Doug Gregor + Dave Abrahams + A utility library for passing references to generic functions. + libs/core/ref.html + 03 + Function-objects + bind/ref libs/core/ @@ -1027,6 +1093,22 @@ Domain System + + chrono + libs/chrono/ + 1.47.0 + 1.88.0 + Chrono + Howard Hinnant + Beman Dawes + Vicente J. Botet Escriba + Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr> + Useful time utilities. C++11. + libs/chrono/ + 11 + Domain + System + chrono libs/chrono/ @@ -1311,6 +1393,19 @@ 11 Function-objects + + container_hash + libs/container_hash/ + 1.33.0 + 1.88.0 + Container Hash + Daniel James + Peter Dimov <pdimov -at- gmail.com> + An STL-compatible hash function object that can be extended to hash user defined types. + libs/container_hash/ + 11 + Function-objects + container_hash libs/container_hash/ @@ -1937,6 +2032,20 @@ 11 System + + dll + libs/dll/ + 1.61.0 + 1.88.0 + DLL + Antony Polukhin + Renato Tegon Forti + Antony Polukhin <antoshkka -at- gmail.com> + Library for comfortable work with DLL and DSO. + libs/dll/ + 11 + System + dll libs/dll/ @@ -2485,6 +2594,20 @@ Function-objects Programming + + function + libs/function/ + 1.23.0 + 1.88.0 + Function + Doug Gregor + Peter Dimov <pdimov -at- gmail.com> + Function object wrappers for deferred calls or callbacks. + libs/function/ + 11 + Function-objects + Programming + function libs/function/ @@ -3655,8 +3778,7 @@ geometry/index libs/geometry/index/ - hidden - master + 1.88.0 hidden Geometry Index Barend Gehrels @@ -3981,6 +4103,20 @@ 11 Function-objects + + hash2 + libs/hash2/ + 1.88.0 + Hash2 + Peter Dimov + Christian Mazakas + Peter Dimov <pdimov -at- gmail.com> + Christian Mazakas <christian.mazakas -at- gmail.com> + An extensible hashing framework. + libs/hash2/ + 11 + Function-objects + heap libs/heap/ @@ -5384,6 +5520,23 @@ Concurrent IO + + mqtt5 + libs/mqtt5/ + 1.88.0 + MQTT5 + Ivica Siladić + Bruno Iljazović + Korina Šimičević + Ivica Siladić + Bruno Iljazović + Korina Šimičević + MQTT5 client library built on top of Boost.Asio. + libs/mqtt5/ + 17 + Concurrent + IO + msm libs/msm/ @@ -6017,6 +6170,21 @@ Patterns Programming + + outcome + libs/outcome/ + 1.70.0 + 1.88.0 + Outcome + Niall Douglas + Niall Douglas <s -underscore- sourceforge -at- nedprod -dot- com> + A deterministic failure handling library partially simulating lightweight exceptions. + libs/outcome/ + 14 + Emulation + Patterns + Programming + outcome libs/outcome/ @@ -6181,6 +6349,20 @@ Data Metaprogramming + + pfr + libs/pfr/ + 1.75.0 + 1.88.0 + PFR + Antony Polukhin + Antony Polukhin <antoshkka -at- gmail.com> + Basic reflection for user defined types. + libs/pfr/ + 14 + Data + Metaprogramming + pfr libs/pfr/ @@ -6891,6 +7073,20 @@ 11 Math + + random + libs/random/ + 1.15.0 + 1.88.0 + Random + Jens Maurer + Steven Watanabe <watanabesj -at- gmail.com> + Matt Borland <matt -at- mattborland.com> + A complete system for random number generation. + libs/random/ + 11 + Math + random libs/random/ @@ -7026,6 +7222,21 @@ 11 Math + + ratio + libs/ratio/ + 1.47.0 + 1.88.0 + Ratio + Howard Hinnant + Beman Dawes + Vicente J. Botet Escriba + Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr> + Compile time rational arithmetic. C++11. + libs/ratio/ + 11 + Math + ratio libs/ratio/ @@ -7162,6 +7373,19 @@ 11 String + + regex + libs/regex/ + 1.18.0 + 1.88.0 + Regex + John Maddock + John Maddock <john -at- johnmaddock.co.uk> + Regular expression library. + libs/regex/ + 11 + String + regex libs/regex/ @@ -7493,6 +7717,23 @@ 11 Memory + + smart_ptr + libs/smart_ptr/ + 1.23.0 + 1.88.0 + Smart Ptr + Greg Colvin + Beman Dawes + Peter Dimov + Darin Adler + Glen Fernandes + Peter Dimov <pdimov -at- gmail.com> + Smart pointer class templates. + libs/smart_ptr/ + 11 + Memory + smart_ptr libs/smart_ptr/ @@ -7743,6 +7984,20 @@ Correctness System + + stacktrace + libs/stacktrace/ + 1.65.0 + 1.88.0 + Stacktrace + Antony Polukhin + Antony Polukhin <antoshkka -at- gmail.com> + Gather, store, copy and print backtraces. + libs/stacktrace/ + 11 + Correctness + System + stacktrace libs/stacktrace/ @@ -8232,6 +8487,21 @@ Concurrent System + + thread + libs/thread/ + 1.25.0 + 1.88.0 + Thread + Anthony Williams + Vicente J. Botet Escriba + Vicente J. Botet Escriba <vicente.botet -at- wanadoo.fr> + Portable C++ multi-threading. C++11, C++14, C++17. + libs/thread/ + 11 + Concurrent + System + thread libs/thread/ @@ -8479,6 +8749,19 @@ 03 Data + + tuple + libs/tuple/ + 1.24.0 + 1.88.0 + Tuple + Jaakko Järvi + Jaakko Jarvi <jarvi -at- cs.tamu.edu> + Ease definition of functions returning multiple values, and more. + libs/tuple/ + 03 + Data + tuple libs/tuple/ @@ -8617,6 +8900,20 @@ Generic Metaprogramming + + type_traits + libs/type_traits/ + 1.13.0 + 1.88.0 + Type Traits + John Maddock, Steve Cleary, et al + John Maddock <john -at- johnmaddock.co.uk> + Templates for fundamental properties of types. + libs/type_traits/ + 03 + Generic + Metaprogramming + type_traits libs/type_traits/ @@ -9230,6 +9527,20 @@ Containers String + + utility/string_view + libs/utility/ + 1.84.0 + 1.88.0 + String View + Marshall Clow + Marshall Clow <marshall -at- idio.com> + String view templates. + libs/utility/doc/html/utility/utilities/string_view.html + 03 + Containers + String + utility/string_view libs/utility/ diff --git a/generated/current_version.txt b/generated/current_version.txt index f6ea87dd..4b5c316b 100644 --- a/generated/current_version.txt +++ b/generated/current_version.txt @@ -1 +1 @@ -1.87.0 \ No newline at end of file +1.88.0 \ No newline at end of file diff --git a/generated/dev.rss b/generated/dev.rss index be05fd8d..1dd7c38f 100644 --- a/generated/dev.rss +++ b/generated/dev.rss @@ -8,7 +8,7 @@ en-us 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) -Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlSun, 16 Mar 2025 04:24:28 +0000 +Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlThu, 10 Apr 2025 20:39:01 +0000 <div id="version_1_88_0.new_libraries"> @@ -16,13 +16,13 @@ <ul> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, + <span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, from Peter Dimov and Christian Mazakas. </div> </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built + <span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina Šimičević. </div> @@ -34,7 +34,7 @@ <ul> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/array/">Array</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> <ul> <li> <div> @@ -97,7 +97,89 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/assert/">Assert</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> + <ul> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> qualifiers + to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> + member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer + values. + </div> + </li> + <li> + <div> + Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>. + </div> + </li> + <li> + <div> + Fixed an incorrect default template argument in the implementation + of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">io_uring</span></code> + implementation so that it does not attempt to re-register internal + descriptors with the reactor after a fork, if they were not previously + registered. + </div> + </li> + <li> + <div> + Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code> + default constructor. + </div> + </li> + <li> + <div> + Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> + function. + </div> + </li> + <li> + <div> + Removed some spurious macro definitions that were left after the + removal of deprecated buffer functionality. + </div> + </li> + <li> + <div> + Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code> + when opening a file. + </div> + </li> + <li> + <div> + Added overview documentation on the available runtime configuration + options. + </div> + </li> + <li> + <div> + Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion + token. + </div> + </li> + <li> + <div> + Updated the <code><span class="identifier">async_result</span></code> + documentation to reflect the current type requirements placed on + specialisations of the trait. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> <ul> <li> <div> @@ -112,7 +194,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/beast/">Beast</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> <ul> <li> <div> @@ -193,7 +275,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/conversion/">Conversion</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> <ul> <li> <div> @@ -205,7 +287,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/dll/">DLL</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> <ul> <li> <div> @@ -285,7 +367,174 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/iterator/">Iterator</a>:</span> + <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/1370">PR#1370</a> Relax half period check in spheroidal normalization + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial + predicates + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with + integer coordinates + </div> + </li> + <li> + <div> + Several test cases has been added + </div> + </li> + <li> + <div> + Use using instead of typedef in part of the code + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Solved issues + <ul> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix + compilation error and warning) + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and + unused parameters + </div> + </li> + <li> + <div> + Various fixes of errors and warnings + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/geometry/">Graph</a>:</span> + <ul> + <li> + <div> + Bug fixes + <ul> + <li> + <div> + Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>, + resolves multiple issues. + </div> + </li> + <li> + <div> + Ensure <code><span class="identifier">named_graph</span></code> + is initialized before use. + </div> + </li> + <li> + <div> + Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code> + with Boost.Geometry, fixes incorrect results for very small + angles. + </div> + </li> + <li> + <div> + Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code> + in <code><span class="identifier">undirected_dfs</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Performance improvements + <ul> + <li> + <div> + <code><span class="identifier">adjacency_list</span></code>: + Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick + benchmark indicates a 10% improvement to graph construction + time. + </div> + </li> + <li> + <div> + <code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>: + Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code> + with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40% + improvement for large graphs. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + General Improvements + <ul> + <li> + <div> + Replace the use of several Boost utilities with C++14 language + features. + </div> + </li> + <li> + <div> + Modernize examples with C++14 language features. + </div> + </li> + <li> + <div> + Various fixes to documentation and build system. + </div> + </li> + <li> + <div> + <code><span class="identifier">vertex_by_property</span></code> + no longer requires a mutable graph. + </div> + </li> + <li> + <div> + Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code> + and Clang 19. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> <ul> <li> <div> @@ -371,7 +620,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/locale/">Locale</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> <ul> <li> <div> @@ -406,7 +655,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/lockfree/">Lockfree</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span> <ul> <li> <div> @@ -419,7 +668,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/log/">Log</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> <ul> <li> <div> @@ -435,12 +684,21 @@ Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>) </div> </li> + <li> + <div> + Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code> + when the backend was configured to append to an existing file and + the actively written file name pattern didn't have a counter placeholder + but the target file name pattern did, and the log files were written + directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</a>) + </div> + </li> </ul> </div> </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mp11/">Mp11</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> <ul> <li> <div> @@ -454,7 +712,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mysql/">MySQL</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> <ul> <li> <div> @@ -537,7 +795,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/nowide/">Nowide</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> <ul> <li> <div> @@ -550,7 +808,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/poly_collection/">PolyCollection</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> <ul> <li> <div> @@ -563,7 +821,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/smart_ptr/">SmartPtr</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span> <ul> <li> <div> @@ -576,7 +834,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/stacktrace/">Stacktrace</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> <ul> <li> <div> @@ -615,7 +873,20 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/unordered/">Unordered</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> + <ul> + <li> + <div> + Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented + the library from building on clang-20. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> <ul> <li> <div> @@ -627,7 +898,7 @@ </li> <li> <div> - <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/variant2/">Variant2</a>:</span> + <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> <ul> <li> <div> @@ -647,17 +918,106 @@ <ul> <li> <div> - <em>TODO</em> + 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> - </ul> - <p> - Boost's additional test compilers include: - </p> - <ul> <li> <div> - <em>TODO</em> + 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> diff --git a/generated/download-items.html b/generated/download-items.html index d1980de1..a824ec7d 100644 --- a/generated/download-items.html +++ b/generated/download-items.html @@ -1,36 +1,13 @@

Current Release

Version 1.87.0

+ "news-title">Version 1.88.0 -

December 12th, 2024 00:52 GMT

- -

- - New Libraries: Parser Updated Libraries: Asio Atomic Beast Charconv Cobalt - Compat Container Filesystem Flyweight Geometry Iterator Interprocess JSON, - LexicalCast Log Math Move Mp11 Multiprecision MySQL PFR Process SmartPtr Stacktrace - STLInterfaces Test Unordered URL UUID Wave -

- - - - -
Downloads
PlatformFileSHA256 Hash
unixboost_1_87_0.tar.bz2af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89
boost_1_87_0.tar.gzf55c340aa49763b1925ccf02b2e83f35fdcf634c9d5164a2acb87540173c741d
windowsboost_1_87_0.7zdb6b7d77a2286ebe79d4aa7252c08b051d271fd8b013b6b18bc7a966552c1139
boost_1_87_0.zipf367a218d27b23b568956bacf56d08d2c1d9647211337136be8cac5cb2ff0828
* The download links are supported by grants from The C++ Alliance.

-

Beta Release

-

Version 1.88.0 beta 1

- -

March 16th, 2025 04:24 GMT

+

April 10th, 2025 20:39 GMT

@@ -39,9 +16,9 @@

- - -
Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_88_0_b1.tar.bz29e42c0611500151d795d66a07ef0a21036c02d24678e2e887caf6d97fcbc25ca
boost_1_88_0_b1.tar.gz3c334a9a743b68a35452b0223be8932fb39f26a6938382f9b9e625c4df99602c
windowsboost_1_88_0_b1.7z7faf60c4cb12ee90270e41716cf3735a8739016d7346983ce9f5e899e510b26d
boost_1_88_0_b1.zipbc4948bc664fde0c2142badae2679a42124b464dc58019250afe0ef57fd7763e
* The download links are supported by grants from The C++ Alliance.

+ + +
Downloads
PlatformFileSHA256 Hash
unixboost_1_88_0.tar.bz246d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b
boost_1_88_0.tar.gz3621533e820dcab1e8012afd583c0c73cf0f77694952b81352bf38c1488f9cb4
windowsboost_1_88_0.7ze84a33716a31c1c8cb00783a411630d41c008e9364002dc0fe55aea4f54f4726
boost_1_88_0.zip8ee21476f1aca1978339f0f4a218b9b8a6746eec83070f32630f97b09c7e91b7
* The download links are supported by grants from The C++ Alliance.

diff --git a/generated/downloads.rss b/generated/downloads.rss index fd11e5b4..cb3e3a12 100644 --- a/generated/downloads.rss +++ b/generated/downloads.rss @@ -8,7 +8,1027 @@ en-us 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) -Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 +Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlThu, 10 Apr 2025 20:39:01 +0000 + + + <div id="version_1_88_0.new_libraries"> + <h3><span class="link">New Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, + from Peter Dimov and Christian Mazakas. + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built + on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina + Šimičević. + </div> + </li> + </ul> + </div> + <div id="version_1_88_0.updated_libraries"> + <h3><span class="link">Updated Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> + <ul> + <li> + <div> + Converted documentation to AsciiDoc (Christian Mazakas). + </div> + </li> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> and + <code><span class="keyword">constexpr</span></code> as appropriate. + </div> + </li> + <li> + <div> + Marked obsolete functions as deprecated. + </div> + </li> + <li> + <div> + Removed obsolete compiler workarounds. + </div> + </li> + <li> + <div> + Changed <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;::</span><span class="identifier">begin</span><span class="special">()</span></code>, + <code><span class="identifier">cbegin</span><span class="special">()</span></code>, + <code><span class="identifier">end</span><span class="special">()</span></code>, + <code><span class="identifier">cend</span><span class="special">()</span></code> + to return <code><span class="keyword">nullptr</span></code>, enabling + <code><span class="keyword">constexpr</span></code>. This matches + the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>. + </div> + </li> + <li> + <div> + Removed local <code><span class="identifier">hash_value</span></code> + overload; <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> supports array-like types + natively. + </div> + </li> + <li> + <div> + <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;</span></code> + can now be initialized with <code><span class="special">=</span> + <span class="special">{{}}</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="keyword">operator</span><span class="special">&lt;=&gt;</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="identifier">to_array</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> + <ul> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> qualifiers + to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> + member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer + values. + </div> + </li> + <li> + <div> + Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>. + </div> + </li> + <li> + <div> + Fixed an incorrect default template argument in the implementation + of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">io_uring</span></code> + implementation so that it does not attempt to re-register internal + descriptors with the reactor after a fork, if they were not previously + registered. + </div> + </li> + <li> + <div> + Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code> + default constructor. + </div> + </li> + <li> + <div> + Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> + function. + </div> + </li> + <li> + <div> + Removed some spurious macro definitions that were left after the + removal of deprecated buffer functionality. + </div> + </li> + <li> + <div> + Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code> + when opening a file. + </div> + </li> + <li> + <div> + Added overview documentation on the available runtime configuration + options. + </div> + </li> + <li> + <div> + Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion + token. + </div> + </li> + <li> + <div> + Updated the <code><span class="identifier">async_result</span></code> + documentation to reflect the current type requirements placed on + specialisations of the trait. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> + <ul> + <li> + <div> + When <code><span class="identifier">BOOST_ASSERT_HANDLER_IS_NORETURN</span></code> + is defined, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed</span></code> + and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed_msg</span></code> are declared + as <code><span class="identifier">BOOST_NORETURN</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> + <ul> + <li> + <div> + Fixes + <ul> + <li> + <div> + Fixed out-of-bounds access in <code><span class="identifier">iequals</span></code> + function. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Improvements + <ul> + <li> + <div> + Updated SSL examples to verify peer certificate hostname. + </div> + </li> + <li> + <div> + Refactored CMakeLists. + </div> + </li> + <li> + <div> + Removed Boost.Scope dependency from examples. + </div> + </li> + <li> + <div> + Peer pings in WebSocket now count as activity. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Documentation + <ul> + <li> + <div> + Added new examples for Unix domain sockets. + </div> + </li> + <li> + <div> + Added SSL/TLS Certificate section to documentation. + </div> + </li> + <li> + <div> + Improved documentation of <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_close</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Acknowledgements + <ul> + <li> + <div> + Morten M. Neergaard + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> + <ul> + <li> + <div> + Use modern C++ in the samples and in the library 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> + Added constructor from <code><span class="identifier">native_handle_t</span></code> + to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code>. Many thanks to + <a href="https://github.com/tgmatos">Tiago Matos</a> for the + <a href="https://github.com/boostorg/dll/pull/82">PR#82</a>. + </div> + </li> + <li> + <div> + Dropped multiple dependencies on other Boost libraries including + Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more + lightweight for compilation. + </div> + </li> + <li> + <div> + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code> + in API is used instead of the <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><span class="special">&amp;</span></code>. This is not a breaking change + as <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> is convertible to <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> + <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">:</span><span class="identifier">import_</span><span class="special">*</span></code> + functions now return <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + rather than <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>. + Define <code><span class="identifier">BOOST_DLL_USE_BOOST_SHARED_PTR</span></code> + to restore the old behavior, however note that the macro will be + removed in one of the upcomming Boost releases. + </div> + </li> + <li> + <div> + Use modern C++ in the samples and in the library code. + </div> + </li> + <li> + <div> + <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> now always throws + in case of a broken binary. Updated the docs and added some tests. + </div> + </li> + <li> + <div> + Documented in FAQ why <code><span class="identifier">RTLD_NODELETE</span></code> + is missing and why there is no <code><span class="special">.</span><span class="identifier">release</span><span class="special">()</span></code> + method. Provided suggestions on possible workarounds. + </div> + </li> + <li> + <div> + Updated the information on building and using the library. CMake + targets now link with <code><span class="special">-</span><span class="identifier">ldl</span></code> if it is required by the platform. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">path_from_handle</span></code> implementation + for long paths on Windows OS. + </div> + </li> + <li> + <div> + Highlighted in the docs that <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library are experimental + and incomplete. + </div> + </li> + <li> + <div> + Fixed multiple mangling issues in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library. + </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/1370">PR#1370</a> Relax half period check in spheroidal normalization + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial + predicates + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with + integer coordinates + </div> + </li> + <li> + <div> + Several test cases has been added + </div> + </li> + <li> + <div> + Use using instead of typedef in part of the code + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Solved issues + <ul> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix + compilation error and warning) + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and + unused parameters + </div> + </li> + <li> + <div> + Various fixes of errors and warnings + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/geometry/">Graph</a>:</span> + <ul> + <li> + <div> + Bug fixes + <ul> + <li> + <div> + Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>, + resolves multiple issues. + </div> + </li> + <li> + <div> + Ensure <code><span class="identifier">named_graph</span></code> + is initialized before use. + </div> + </li> + <li> + <div> + Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code> + with Boost.Geometry, fixes incorrect results for very small + angles. + </div> + </li> + <li> + <div> + Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code> + in <code><span class="identifier">undirected_dfs</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Performance improvements + <ul> + <li> + <div> + <code><span class="identifier">adjacency_list</span></code>: + Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick + benchmark indicates a 10% improvement to graph construction + time. + </div> + </li> + <li> + <div> + <code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>: + Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code> + with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40% + improvement for large graphs. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + General Improvements + <ul> + <li> + <div> + Replace the use of several Boost utilities with C++14 language + features. + </div> + </li> + <li> + <div> + Modernize examples with C++14 language features. + </div> + </li> + <li> + <div> + Various fixes to documentation and build system. + </div> + </li> + <li> + <div> + <code><span class="identifier">vertex_by_property</span></code> + no longer requires a mutable graph. + </div> + </li> + <li> + <div> + Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code> + and Clang 19. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> + <ul> + <li> + <div> + Dropped support for C++03 and ancient compilers, updated code base + to use C++11 and MP11, reduced usage of MPL. (<a href="https://github.com/boostorg/iterator/pull/82">PR#82</a>) + </div> + </li> + <li> + <div> + Added <code><span class="identifier">min_category</span></code> + trait, which is a variadic equivalent of <code><span class="identifier">minimum_category</span></code> + that doesn't depend on MPL. <code><span class="identifier">minimum_category</span></code> + is deprecated and will be removed in a future release. + </div> + </li> + <li> + <div> + Extracted <code><span class="identifier">enable_if_convertible</span></code> + trait to a separate header <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>. + The trait was previously defined in <code><span class="identifier">iterator_adaptor</span><span class="special">.</span><span class="identifier">hpp</span></code>, + and the header still provides <code><span class="identifier">enable_if_convertible</span></code> + when included. This dependency is provided for backward compatibility + and will be removed in a future release. Users are advised to add + includes of <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>, + as needed. + </div> + </li> + <li> + <div> + Added <code><span class="special">*</span><span class="identifier">_t</span></code> + variants of various iterator traits that produce types. + </div> + </li> + <li> + <div> + <code><span class="identifier">filter_iterator</span></code> and + <code><span class="identifier">transform_iterator</span></code> + now use empty base optimization (EBO) to reduce size of the iterator + when the adopted function object is stateless. + </div> + </li> + <li> + <div> + <code><span class="identifier">zip_iterator</span></code> now + natively supports <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>, + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code> + for iterator tuples and doesn't need including Fusion support headers. + </div> + </li> + <li> + <div> + <code><span class="identifier">function_output_iterator</span></code> + no longer allows default construction when the wrapped function is + a function pointer. Such construction would previously create an + iterator with an uninitialized function pointer value, and such an + iterator would be unusable. + </div> + </li> + <li> + <div> + <code><span class="identifier">generator_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + and <code><span class="identifier">shared_container_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + headers were moved under the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span></code> + directory. The previous headers in <code><span class="identifier">boost</span></code> + are still retained for backward compatibility, but will be removed + in a future release. Users are advised to update their includes. + </div> + </li> + <li> + <div> + <code><span class="identifier">shared_container_iterator</span></code> + now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> to reference the container + internally. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is still retained, but it will incur performance overhead on the + iterator construction, as <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is now wrapped in a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + internally. It is recommended to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + to reference the container. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> + <ul> + <li> + <div> + Raised required ICU version to at least 4.8.1 + </div> + </li> + <li> + <div> + Dropped support for ICU 50.1 + </div> + </li> + <li> + <div> + Fixed parsing of integers with input strings in floating point format + (<a href="https://github.com/boostorg/locale/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Support parsing and formatting of <code><span class="identifier">uint64_t</span></code> + values with the ICU backend (<a href="https://github.com/boostorg/locale/pull/246">PR#246</a>) + </div> + </li> + <li> + <div> + Support <code><span class="identifier">char8_t</span></code> on + more platforms + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span> + <ul> + <li> + <div> + Added new spsc_value, a lockfree single-producer single-consumer + value based on a triple-buffer + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> + <ul> + <li> + <div> + Disabled usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char16_t</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char32_t</span><span class="special">&gt;</span></code> locale facets in C++20 and later + modes as they were deprecated in C++20. This means character code + conversions to/from <code><span class="keyword">char16_t</span></code> + and <code><span class="keyword">char32_t</span></code> is no longer + available in C++20 and later. + </div> + </li> + <li> + <div> + Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code> + when the backend was configured to append to an existing file and + the actively written file name pattern didn't have a counter placeholder + but the target file name pattern did, and the log files were written + directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</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> + Fixed <code><span class="identifier">mp_from_sequence</span></code> + for non-integral values (accidentally broken in 1.83.0 due to offset + support) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> + <ul> + <li> + <div> + <code><span class="identifier">connection_pool</span></code> now + resizes correctly even in the presence of many connections with session + establishment in-progress. The old algorithm could lead to the pool + not being resized as expected under certain conditions (<a href="https://github.com/boostorg/mysql/issues/395">#395</a>). + </div> + </li> + <li> + <div> + Added <code><span class="identifier">any_connection</span><span class="special">::</span><span class="identifier">connection_id</span></code>. + This function retrieves the connection's ID, which can subsequently + be used in <code><span class="identifier">KILL</span></code> SQL + statements to cancel queries. This function is equivalent to <code><span class="identifier">mysql_thread_id</span></code> in the official + C API (<a href="https://github.com/boostorg/mysql/issues/408">#408</a>) + </div> + </li> + <li> + <div> + Attempting to start an async operation on a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + while another operation is in-progress no longer triggers undefined + behavior. It now fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">operation_in_progress</span></code> + (<a href="https://github.com/boostorg/mysql/issues/405">#405</a>). + </div> + </li> + <li> + <div> + Attempting to start an operation while a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + are engaged in a multi-function operation no longer yields potentially + dangerous packet mismatches. It instead fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">engaged_in_multi_function</span></code> (<a href="https://github.com/boostorg/mysql/issues/448">#448</a>). + </div> + </li> + <li> + <div> + Improved diagnostics when attempting to use a connection without + a established session. Operations now fail with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">not_connected</span></code> + (<a href="https://github.com/boostorg/mysql/issues/450">#450</a>). + </div> + </li> + <li> + <div> + Fixed a race condition in <code><span class="identifier">connection</span></code> + and <code><span class="identifier">any_connection</span></code> + regarding per-operation cancellation. In previous versions, if a + cancellation signal was emitted after an intermediate async operation + had completed, but before its handler had been called, the signal + was ignored. This is no longer the case (<a href="https://github.com/boostorg/mysql/issues/199">#199</a>). + </div> + </li> + <li> + <div> + <code><span class="identifier">field</span></code>'s constructor + and assignment from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> + are now available in C++17, rather than C++20. These functions were + guarded by standard feature-test macros, only available in C++20. + These have been replaced by their Boost.Config equivalents. + </div> + </li> + <li> + <div> + Added an HTTP server example that uses C++20 coroutines. + </div> + </li> + <li> + <div> + Added a doc page on interfacing sync and async code. This replaces + the synchronous connection pool snippet, which contained a race condition. + </div> + </li> + <li> + <div> + Improved some of the other examples and doc pages. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> + <ul> + <li> + <div> + Make <code><span class="identifier">getenv</span></code> thread-safe + (<a href="https://github.com/boostorg/nowide/pull/191">PR#191</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> + Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant_collection</span></code>, a closed polymorphic + collection similar in behavior to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;...&gt;&gt;</span></code>. + </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> + Fix <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> + for wide streams (accidentally broken in 1.87.0) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> + <ul> + <li> + <div> + Use <code><span class="identifier">GetModuleNames</span></code> + to determine the full module path for MSVC implementation. Many thanks + to <a href="https://github.com/Dani-Hub">Daniel Krügler</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/198">PR#198</a>. + </div> + </li> + <li> + <div> + Print relative addresses to allow their decoding later without knowing + the base address. The logic could be disabled by defining <code><span class="identifier">BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE</span></code>. + Many thanks to <a href="https://github.com/McCzarny">Maciej Czarnecki</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/200">PR#200</a>. + </div> + </li> + <li> + <div> + Expose all the stacktrace libraries as b2 features for better control + over the build and explicit information on what libraries are built. + See "Configuration and Build" section for more info. Many + thanks to <a href="https://github.com/uilianries">Uilian Ries</a> + for initial implementation of the feature in <a href="https://github.com/boostorg/stacktrace/pull/202">PR#202</a>. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">stacktrace_from_exception</span></code> + builds with MinGW. Thanks to <a href="https://github.com/crhilton">crhilton</a> + for the fix. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> + <ul> + <li> + <div> + Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented + the library from building on clang-20. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> + <ul> + <li> + <div> + Migrated the documentation to a multipage format using Antora. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> + <ul> + <li> + <div> + Use the smallest appropriate unsigned type for the index. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + <div id="version_1_88_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_88_0.acknowledgements"> + <h3><span class="link">Acknowledgements</span></h3> + <p> + Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release. + </p> + </div> +Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 <div id="version_1_87_0.new_libraries"> @@ -3289,1430 +4309,6 @@ Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release. </p> </div> -Version 1.85.0https://www.boost.org/users/history/version_1_85_0.htmlhttps://www.boost.org/users/history/version_1_85_0.htmlMon, 15 Apr 2024 17:38:25 +0000 - - - <div id="version_1_85_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> - Container - <ul> - <li> - <div> - flat_map/multimap containers can crash or return invalid results - in some compilers due to UB in the library, see <a href="https://github.com/boostorg/container/issues/273">#273</a>. - <a href="https://www.boost.org/patches/1_85_0/0001-container-fix-flat_map.patch">Patch</a>. - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_85_0.new_libraries"> - <h3><span class="link">New Libraries</span></h3> - <ul> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/charconv/">Charconv</a>:</span> A high quality implementation - of <code><span class="special">&lt;</span><span class="identifier">charconv</span><span class="special">&gt;</span></code> in C++11, from Matt Borland. - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/scope/">Scope</a>:</span> A collection of scope guard - utilities and a <code><span class="identifier">unique_resource</span></code> - wrapper, from Andrey Semashev. - </div> - </li> - </ul> - </div> - <div id="version_1_85_0.updated_libraries"> - <h3><span class="link">Updated Libraries</span></h3> - <ul> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> - <ul> - <li> - <div> - Fixed the <code><span class="identifier">async_result</span></code> - primary template's concept checking to correctly handle lvalue-qualified - completion signatures. - </div> - </li> - <li> - <div> - Fixed some compile errors that could arise when using the <code><span class="identifier">bind_allocator</span></code>, <code><span class="identifier">bind_executor</span></code>, - <code><span class="identifier">bind_immediate_executor</span></code> - and <code><span class="identifier">bind_cancellation_slot</span></code> - completion token adapters to adapt each other. - </div> - </li> - <li> - <div> - Changed the <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code> - operation so that it moves the <code><span class="identifier">completion_order</span></code> - vector when invoking the completion handler. - </div> - </li> - <li> - <div> - Fixed some warnings about deprecated implicit copy constructors on - <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_resolver_query</span></code>, <code><span class="identifier">io_context</span><span class="special">::</span><span class="identifier">strand</span></code>, and <code><span class="identifier">coroutine</span></code>. - </div> - </li> - <li> - <div> - Updated the version specification used to initialise Winsock. - </div> - </li> - <li> - <div> - Fixed <code><span class="identifier">co_spawn</span></code> to - correctly propagate exceptions resulting from cancellation to the - completion handler. - </div> - </li> - <li> - <div> - Added calls to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">launder</span></code> - to fix undefined behaviour in <code><span class="identifier">awaitable</span><span class="special">&lt;&gt;</span></code> internal storage. - </div> - </li> - <li> - <div> - Added missing handling of the <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">append</span></code> - flag in the Windows implementation of file support. - </div> - </li> - <li> - <div> - Updated the socket and descriptor implementations to add more cases - where they will fall back to <code><span class="identifier">fcntl</span></code> - if a call to <code><span class="identifier">ioctl</span></code> - fails. - </div> - </li> - <li> - <div> - Fixed the <tt>boost/asio/experimental/parallel_group.hpp</tt> - header so that it is self-contained. - </div> - </li> - <li> - <div> - Fixed a compile error that occurred when channels and <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">coro</span></code> were both used in the same - translation unit. - </div> - </li> - <li> - <div> - Added missing CancellationSlot type requirements to documentation. - </div> - </li> - <li> - <div> - Fixed the documentation hyperlinks for the deduced return types of - asynchronous operations' initiating functions. - </div> - </li> - <li> - <div> - Other minor documentation updates. - </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 support for <code><span class="identifier">pause</span></code> - instruction on RISC-V. (<a href="https://github.com/boostorg/atomic/pull/65">PR#65</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> - API Changes - <ul> - <li> - <div> - The status code list has been updated to conform with the IANA - registry. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Fixes - <ul> - <li> - <div> - Unreachable code warning in <code><span class="identifier">buffers_cat</span><span class="special">.</span><span class="identifier">hpp</span></code>. - </div> - </li> - <li> - <div> - Connection error handling in <code><span class="identifier">websocker_server_awaitable</span></code> - example. - </div> - </li> - <li> - <div> - Concurrent calls to <code><span class="identifier">async_write</span></code> - in advanced server examples. - </div> - </li> - <li> - <div> - zlib name conflicts with minizip. - </div> - </li> - <li> - <div> - host string should be updated after <code><span class="identifier">SSL_set_tlsext_host_name</span><span class="special">()</span></code>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Improvements - <ul> - <li> - <div> - <code><span class="identifier">asio</span><span class="special">::</span><span class="identifier">associator</span></code> is specialized - for <code><span class="identifier">bind_wrapper</span></code> - and <code><span class="identifier">bind_front_wrapper</span></code>. - </div> - </li> - <li> - <div> - Add non-allocating overload for error category message function. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Documentation - <ul> - <li> - <div> - Specifies when calling <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">message</span><span class="special">::</span><span class="identifier">prepare_payload</span><span class="special">()</span></code> is optional. - </div> - </li> - <li> - <div> - Operations affected by <code><span class="identifier">basic_stream</span><span class="special">::</span><span class="identifier">expires_after</span><span class="special">()</span></code>. - </div> - </li> - <li> - <div> - <code><span class="identifier">teardown</span><span class="special">()</span></code> - and <code><span class="identifier">async_teardown</span><span class="special">()</span></code> are customization points. - </div> - </li> - <li> - <div> - Moving or copying <code><span class="identifier">http</span><span class="special">::</span><span class="identifier">serializer</span></code> - after first usage is undefined behaviour. - </div> - </li> - <li> - <div> - <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">permessage_deflate</span></code> should - be configured before performing the WebSocket handshake. - </div> - </li> - <li> - <div> - <code><span class="identifier">bytes_transferred</span></code> - in http reads operations reports the number of bytes consumed - by the HTTP parser. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Acknowledgements - <ul> - <li> - <div> - Emile Cormier, JohannesWilde, yhzx233 - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/bimap/">Bimap</a>:</span> - <ul> - <li> - <div> - Fixed heterogeneous lookup for side collections (<a href="https://github.com/boostorg/bimap/pull/42">PR#42</a>). - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/bind/">Bind</a>:</span> - <ul> - <li> - <div> - C++03 is no longer supported; a C++11 compiler is required. (This - includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> - <ul> - <li> - <div> - Removed outdated mentions of <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lexical_cast</span></code> - that is not part of the library any more. Thanks to <a href="https://github.com/eoan-ermine">Danil - Sidoruk</a> for the PR <a href="https://github.com/boostorg/conversion/pull/28">PR#28</a>! - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> - <ul> - <li> - <div> - Added a new <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">functor</span><span class="special">.</span><span class="identifier">hpp</span></code> - header with a <code><span class="identifier">functor</span></code> - class template for wrapping a raw function into a function object - class. - </div> - </li> - <li> - <div> - Changed <code><span class="identifier">null_deleter</span></code>, - <code><span class="identifier">fclose_deleter</span></code> and - checked deleter definitions so that they don't bring namespace <code><span class="identifier">boost</span></code> into argument-dependent lookup. - Users may need to either explicitly qualify the namespace of the - called function or add a <code><span class="keyword">using</span></code>-declaration. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> - <ul> - <li> - <div> - <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_path</span></code> and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_string</span></code> methods now remove - duplicate directory separators in the returned paths. - </div> - </li> - <li> - <div> - <strong>v4:</strong> <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_path</span></code>, - <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">generic_string</span></code>, <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">make_preferred</span></code> - and <code><span class="identifier">path</span><span class="special">::</span><span class="identifier">lexically_normal</span></code> avoid converting - between backslashes and forward slashes in path root names. For example, - on Windows, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\\\\\?\\\\c:\\\\foo"</span><span class="special">).</span><span class="identifier">generic_string</span><span class="special">()</span></code> now returns "\\?\c:/foo" - instead of "//?/c:/foo". Similarly, <code><span class="identifier">path</span><span class="special">(</span><span class="string">"\\\\\\\\host/share/foo/.."</span><span class="special">).</span><span class="identifier">lexically_normal</span><span class="special">()</span></code> now returns "\\host\share". - </div> - </li> - <li> - <div> - <strong>v4:</strong> <code><span class="identifier">equivalent</span></code> - now indicates error if either one of the paths doesn't exist. - </div> - </li> - <li> - <div> - <strong>v4:</strong> <code><span class="identifier">absolute</span></code> - now returns a path with a trailing directory separator when the input - path has an empty <code><span class="identifier">relative_path</span><span class="special">()</span></code>. (<a href="https://github.com/boostorg/filesystem/issues/301">#301</a>) - </div> - </li> - <li> - <div> - Added a <code><span class="identifier">unique_path</span></code> - overload taking a single <code><span class="identifier">error_code</span><span class="special">&amp;</span> <span class="identifier">ec</span></code> - argument. The overload generates a unique path using the default - path model. - </div> - </li> - <li> - <div> - <code><span class="identifier">weakly_canonical</span></code> - now produces an absolute path if the input path is relative and contains - no elements that exist in the filesystem. (<a href="https://github.com/boostorg/filesystem/issues/300">#300</a>) - </div> - </li> - <li> - <div> - Added a new <code><span class="identifier">copy_options</span><span class="special">::</span><span class="identifier">ignore_attribute_errors</span></code> - option for <code><span class="identifier">copy_file</span></code> - and <code><span class="identifier">copy</span></code> operations. - The new option allows to ignore possible errors while copying file - attributes. (<a href="https://github.com/boostorg/filesystem/issues/179">#179</a>) - </div> - </li> - <li> - <div> - On Linux, <code><span class="identifier">copy_file</span></code> - backends based on <code><span class="identifier">sendfile</span></code> - and <code><span class="identifier">copy_file_range</span></code> - system calls will attempt to preallocate storage for the target file. - This may reduce filesystem fragmentation and provide early error - indication if there is not enough free space. Not all filesystems - support this feature; file copying proceeds if storage preallocation - is not supported. - </div> - </li> - <li> - <div> - On POSIX systems that support <a href="https://pubs.opengroup.org/onlinepubs/9699919799/functions/fdopendir.html"><code><span class="identifier">fdopendir</span></code></a>, <code><span class="identifier">openat</span></code> and related APIs defined - in POSIX.1-2008, as well as on Windows, <code><span class="identifier">recursive_directory_iterator</span></code> - now uses file descriptors/handles instead of paths to query the file - statuses and open nested directories during iteration. This makes - directory iteration more resilient to concurrent modifications of - the filesystem. - </div> - </li> - <li> - <div> - Removed APIs that were previously declared deprecated. In particular, - <code><span class="identifier">path</span></code> and <code><span class="identifier">recursive_directory_iterator</span></code> member - functions, <code><span class="identifier">is_regular</span></code>, - <code><span class="identifier">copy_directory</span></code>, - <code><span class="identifier">symbolic_link_exists</span></code>, - <code><span class="identifier">complete</span></code>, <code><span class="identifier">copy_option</span></code>, <code><span class="identifier">symlink_option</span></code>, - as well as <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">convenience</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">filesystem</span><span class="special">/</span><span class="identifier">path_traits</span><span class="special">.</span><span class="identifier">hpp</span></code> headers were removed. Possible - replacements for the removed components are mentioned in the documentation. - </div> - </li> - <li> - <div> - Support for <code><span class="identifier">path</span></code> - construction, assignment and appending from container types (e.g. - <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="keyword">char</span><span class="special">&gt;</span></code>) - is now disabled by default. Users can still enable this functionality - by defining <code><span class="identifier">BOOST_FILESYSTEM_DEPRECATED</span></code>. - This functionality remains deprecated and will be completely removed - in a future release. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/function/">Function</a>:</span> - <ul> - <li> - <div> - C++03 is no longer supported; a C++11 compiler is required. (This - includes GCC 4.7 or later, and MSVC 12.0 (VS 2013) or later.) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> - <ul> - <li> - <div> - Improvements - <ul> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1247">PR#1247</a> Use if constexpr macro instead of condition - macro - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1242">PR#1242</a> Pass strategy to sort by side - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1234">PR#1234</a> Add cmake files for clang/mac/darwin/arm64 - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Solved issues - <ul> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1231">#1231</a>, <a href="https://github.com/boostorg/geometry/issues/1244">#1244</a> Fix invalid set operations - for CCW polygons - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1259">#1259</a> Fix compilation error with CUDA NVCC compiler - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1250">#1250</a> Fix buffer of linestring returning incorrect - inner polygon - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1230">#1230</a> Fix union operation perturbing a point and - returning wrong result - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1229">#1229</a> Fix union producing self intersections - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1248">PR#1248</a> Fix buffer issue by setting turns in closed - clusters as non traversable - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1246">PR#1246</a> Fix compilation of converter and is_base_of - </div> - </li> - <li> - <div> - Various fixes of errors and warnings - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> - <ul> - <li> - <div> - Support for C++03 is deprecated and will be removed in a future release. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> - <ul> - <li> - <div> - Boost.Endian is now used to deal with endianness. - </div> - </li> - <li> - <div> - Aliases to Boost.System and Boost.Container components are deprecated - and <strong>will be completely removed in 1.87.0</strong>. - </div> - </li> - <li> - <div> - Conversion of described classes supports private members. - </div> - </li> - <li> - <div> - Rvalue reference overload for <code><span class="identifier">visit</span></code>. - </div> - </li> - <li> - <div> - Add conversion support for path-like types. - </div> - </li> - <li> - <div> - Parsing into described classes correctly considers inherited members. - </div> - </li> - <li> - <div> - Conversion of self-referential sequences is disabled. - </div> - </li> - <li> - <div> - Fixed reference handling in visit. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/leaf/">LEAF</a>:</span> - <ul> - <li> - <div> - New API for transporting of error objects and exceptions between - threads: <code><span class="identifier">try_capture_all</span></code>. - </div> - </li> - <li> - <div> - <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> - able to transport exceptions captured via <code><span class="identifier">try_capture_all</span></code>. - </div> - </li> - <li> - <div> - <code><span class="identifier">result</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">&gt;</span></code> - transporting dynamically captured error objects with improved efficiency. - </div> - </li> - <li> - <div> - Old <code><span class="identifier">make_shared_context</span></code>/<code><span class="identifier">capture</span></code> APIs are deprecated, will - be removed in the next release. - </div> - </li> - <li> - <div> - Removed support for transporting of dynamicaly captured error objects - in exceptions. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/lexical_cast/">LexicalCast</a>:</span> - <ul> - <li> - <div> - Significant rewrite of the internal logic to separate optimized and - C++ Standard Library IO-based streams: - <ul> - <li> - <div> - C++ Standard Library based streams now constructed in less - cases leading to <strong>better performance</strong>; - </div> - </li> - <li> - <div> - less template instantiations and simpler code; - </div> - </li> - <li> - <div> - always use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">char_traits</span></code> - (do not use custom traits from input/output types as it leads - to linktime or runtime errors); - </div> - </li> - <li> - <div> - fixed missuse of forward declared boost::array (thanks to - <a href="https://github.com/13steinj">13steinj</a> for - the report <a href="https://github.com/boostorg/lexical_cast/issues/64">#64</a>!); - </div> - </li> - <li> - <div> - support for <code><span class="keyword">volatile</span></code> - input types was dropped, following the C++ Standard Library - trend. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Optimized conversions from std::basic_string_view and boost::basic_string_view - <a href="https://github.com/boostorg/lexical_cast/issues/30">#30</a>. - </div> - </li> - <li> - <div> - Dropped dependency on Boost.NumericConversion and Boost.MPL. Fixed - some cases of converting floting point types to arithmetics. - </div> - </li> - <li> - <div> - The library now compiles and works fine with <code><span class="special">-</span><span class="identifier">fno</span><span class="special">-</span><span class="identifier">sanitize</span><span class="special">-</span><span class="identifier">recover</span><span class="special">=</span><span class="identifier">integer</span></code> <a href="https://github.com/boostorg/lexical_cast/issues/45">#45</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> - <ul> - <li> - <div> - Fix linker issues due to missing typeinfo for <code><span class="identifier">char8_t</span></code> - in C++20 mode - </div> - </li> - <li> - <div> - Fix IConv compile flags when using ICU that has a bundled IConv - </div> - </li> - <li> - <div> - <code><span class="identifier">collator</span></code> now throws - on construction, if at all, as documented - </div> - </li> - <li> - <div> - <code><span class="identifier">collator</span></code> no longer - derives from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">collator</span></code> - to avoid possible type confusing when it isn't available for the - current backend <a href="https://github.com/boostorg/locale/pull/216">PR#216</a> - </div> - </li> - <li> - <div> - Throw an exception when a faulty IConv library is detected (e.g. - on some MacOS versions) instead of looping indefinitely <a href="https://github.com/boostorg/locale/pull/218">PR#218</a> - </div> - </li> - <li> - <div> - Reduce resolution of <code><span class="identifier">date_time</span></code> - to seconds as milliseconds where not easily available causing confusion - <a href="https://github.com/boostorg/locale/issues/221">#221</a> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> - <ul> - <li> - <div> - Added a new collection of optimization algorithms: - <ul> - <li> - <div> - Differential Evolution <a href="https://github.com/boostorg/math/pull/1062">PR#1062</a> - </div> - </li> - <li> - <div> - JSO <a href="https://github.com/boostorg/math/pull/1065">PR#1065</a> - </div> - </li> - <li> - <div> - Random Search <a href="https://github.com/boostorg/math/pull/1071">PR#1071</a> - </div> - </li> - <li> - <div> - CMA-ES <a href="https://github.com/boostorg/math/pull/1074">PR#1074</a> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Fix Divide by 0 warning in NCF survival function - </div> - </li> - <li> - <div> - Fix constexpr depth limits of ccmath::floor/ceil fail for large arguments - </div> - </li> - <li> - <div> - Improve accuracy of quartic_roots - </div> - </li> - <li> - <div> - Fix cstdfloat numeric limits detection macro for libstdc++14 - </div> - </li> - <li> - <div> - Fix for MSVC UCRT defining _Complex_I in complex.h when using C++14 - <a href="https://github.com/boostorg/math/pull/1060">PR#1060</a> - </div> - </li> - <li> - <div> - Improve cstdfloat iostream <a href="https://github.com/boostorg/math/pull/1066">PR#1066</a> - </div> - </li> - <li> - <div> - Fix redefnition of Boost.Config macros when using standalone mode - in a non-standalone environment - </div> - </li> - <li> - <div> - Significant improvements to code coverage with associated bug fixes - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/msm/">MSM</a>:</span> - <ul> - <li> - <div> - <strong>Major Update</strong>. Backend update (back11). - Requires C++ 11. The documentation now uses it as default. - </div> - </li> - <li> - <div> - <strong>Big new feature</strong>. New front-end (PlantUML). - Requires C++ 20 - </div> - </li> - <li> - <div> - Various Bugfixes (compiler errors and warnings, priority of deferred - events) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> - <ul> - <li> - <div> - Fixed documentation errors. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> - <ul> - <li> - <div> - Fix deprecation warnings from C++23 &lt;limits&gt; <a href="https://github.com/boostorg/multiprecision/pull/575">PR#575</a> - </div> - </li> - <li> - <div> - Fix cpp_bin_float for small bit counts <a href="https://github.com/boostorg/multiprecision/pull/577">PR#577</a> - </div> - </li> - <li> - <div> - Fix -Wpessimizing-move <a href="https://github.com/boostorg/multiprecision/pull/580">PR#580</a> - </div> - </li> - <li> - <div> - Add covecov runs - </div> - </li> - <li> - <div> - Reduce truncation in cpp_dec_float multiplication <a href="https://github.com/boostorg/multiprecision/pull/585">PR#585</a> - </div> - </li> - <li> - <div> - Fix complex_adaptor to match precision requirements <a href="https://github.com/boostorg/multiprecision/pull/597">PR#597</a> - </div> - </li> - <li> - <div> - Fix for breaking changes in tommath <a href="https://github.com/boostorg/multiprecision/pull/603">PR#603</a> - </div> - </li> - <li> - <div> - Fix for types that can be converted to number participting in arithmetic - operator overloads <a href="https://github.com/boostorg/multiprecision/issues/608">#608</a> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> - <ul> - <li> - <div> - <strong>Breaking change</strong>: Boost.MySQL now - requires linking to the new <strong>Boost.Charconv</strong> - compiled library. This addresses a locale-dependency problem, increases - efficiency, and powers the new client-side SQL formatting feature. - </div> - </li> - <li> - <div> - Added experimental support for <strong>connection pools</strong>, - which allows re-using sessions and provides built-in reconnection - and error handling. - </div> - </li> - <li> - <div> - Added experimental support for <strong>type-erased - connections</strong> (<code><span class="identifier">any_connection</span></code> - class). <code><span class="identifier">any_connection</span></code> - is not a template and features simpler connection establishment and - reconnection semantics. - </div> - </li> - <li> - <div> - Added experimental support for <strong>client-side - SQL formatting functions</strong> (<code><span class="identifier">format_sql</span></code> - and <code><span class="identifier">format_sql_to</span></code>). - These allow securely composing queries client-side, which enables - patterns like batch inserts, dynamic filters or PATCH-like updates. - </div> - </li> - <li> - <div> - Fixed a performance issue affecting <code><span class="identifier">close_statement</span></code> - and <code><span class="identifier">async_close_statement</span></code> - that could cause significant delays in application code. - </div> - </li> - <li> - <div> - Added support for building with <code><span class="identifier">BOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT</span></code>. - </div> - </li> - <li> - <div> - The deprecated execution interface (<code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>, - <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>, - <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code> and their - async counterparts) now triggers warnings, as it's scheduled for - removal in Boost 1.86. - </div> - </li> - <li> - <div> - Fixed a bug that caused some error messages to be truncated. - </div> - </li> - <li> - <div> - Warning cleanup. Builds are now clean from warnings when building - with <code><span class="special">-</span><span class="identifier">Wall</span></code> - and <code><span class="special">-</span><span class="identifier">Wextra</span></code>. - </div> - </li> - <li> - <div> - All <code><span class="identifier">field_view</span></code> constructors - are now stable. - </div> - </li> - <li> - <div> - The library internals have been rewritten using a sans-io approach - to reduce complexity. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/numeric/odeint/">Odeint</a>:</span> - <ul> - <li> - <div> - <strong>Breaking change</strong>: The library now - explicitly requires C++14 instead of implicitly by including Boost.Math - </div> - </li> - <li> - <div> - Fix compatibility with Thrust 1.10.0 - </div> - </li> - <li> - <div> - Removed C++03 Boost components: - <ul> - <li> - <div> - Array - </div> - </li> - <li> - <div> - Bind - </div> - </li> - <li> - <div> - Function - </div> - </li> - <li> - <div> - Static_assert - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/pfr/">PFR</a>:</span> - <ul> - <li> - <div> - <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">get_name</span></code> now can work with local - types on some compilers. Thanks to <a href="https://github.com/schaumb">Bela - Schaum</a> for the PR <a href="https://github.com/boostorg/pfr/pull/152">PR#152</a>! - </div> - </li> - <li> - <div> - Removed unused implementation details. Thanks to <a href="https://github.com/denzor200">Denis - Mikhailov</a> for the PR <a href="https://github.com/boostorg/pfr/pull/154">PR#154</a>. - </div> - </li> - <li> - <div> - Allow throwing exceptions from <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">pfr</span><span class="special">::</span><span class="identifier">structure_to_tuple</span></code>. - Thanks to <a href="https://github.com/denzor200">Denis Mikhailov</a> - for the bug report <a href="https://github.com/boostorg/pfr/issues/155">#155</a>. - </div> - </li> - <li> - <div> - Field reflection trick is now described in the docs. Thanks to all - the discussion participans in <a href="https://github.com/boostorg/pfr/issues/150">#150</a>! - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/random/">Random</a>:</span> - <ul> - <li> - <div> - Added splitmix64 PRNG <a href="https://github.com/boostorg/random/pull/89">PR#89</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> - C++03 is no longer supported; a C++11 compiler is required. (This - includes GCC 4.8 or later, and MSVC 14.0 (VS 2015) or later.) - </div> - </li> - <li> - <div> - The deprecated header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">system</span><span class="special">/</span><span class="identifier">cygwin_error</span><span class="special">.</span><span class="identifier">hpp</span></code> - has been removed. - </div> - </li> - <li> - <div> - The original and obsolete (32 bit) MinGW is no longer supported. - MinGW-w64 (both 64 and 32 bit) is still supported. - </div> - </li> - <li> - <div> - <code><span class="keyword">operator</span><span class="special">&amp;</span></code> - now works for <code><span class="identifier">result</span><span class="special">&lt;</span><span class="keyword">void</span><span class="special">&gt;</span></code> (by way of taking a nullary function.) - </div> - </li> - <li> - <div> - Added <code><span class="keyword">operator</span><span class="special">|=</span></code> - for <code><span class="identifier">result</span></code>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> - <ul> - <li> - <div> - <strong>Big new feature: stacktrace from arbitrary - exception</strong>. On some POSIX platforms <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">stacktrace</span><span class="special">::</span><span class="identifier">from_current_exception</span><span class="special">()</span></code> now returns the stacktrace of the - current exception object as if the stacktrace was captures at the - point of throwing the exception. Many thanks to Andrei Nekrashevich - for prototyping the idea in <code><span class="identifier">libsfe</span></code>. - </div> - </li> - <li> - <div> - Fixed memory consumption on Windows with <code><span class="identifier">boost_stacktrace_windbg</span></code>. - Thanks to <a href="https://github.com/ycyclop">ycyclop</a> - for reporting the issue <a href="https://github.com/boostorg/stacktrace/issues/111">#111</a>, to <a href="https://github.com/correa">Thiago - A. Correa</a> for providing more information, to <a href="https://github.com/akarpovskii">Andrei - Karpovskii</a> for providing a possible fix. - </div> - </li> - <li> - <div> - Fixed library build with non hidden visibility. Thanks to <a href="https://github.com/JBouwer">Jan Bouwer</a> for the report - and information on how to fix it. - </div> - </li> - <li> - <div> - Added a separate section on async signal safety to the docs. Many - thanks to <a href="https://github.com/tworonix">tworonix</a> - for highlighting the problem in <a href="https://github.com/boostorg/stacktrace/issues/131">#131</a> - and to <a href="https://github.com/itrofimow">itrofimow</a> - for information on the problem. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/stl_interfaces/">STLInterfaces</a>:</span> - <ul> - <li> - <div> - Change the behavior of <code><span class="identifier">iterator_interface</span></code> - for input iterators in C++20 and later, to more closely follow the - C++20 concepts. - </div> - </li> - <li> - <div> - Remove hidden friends from <code><span class="identifier">iterator_interface</span></code> - to fix errors about concepts being redefined with different constraints. - </div> - </li> - <li> - <div> - Add a new <code><span class="identifier">v3</span></code> inline - namespace, containing a new iterator_interface based on deducing - this instead of CRTP (C++23 and later). - </div> - </li> - <li> - <div> - Add an rvalue-qualified overload of <code><span class="identifier">closure</span><span class="special">::</span><span class="keyword">operator</span><span class="special">()</span></code>, to prevent dangling temporaries. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> - <ul> - <li> - <div> - Respect library-spcific _NO_LIB macros <a href="https://github.com/boostorg/test/pull/406">PR#406</a> - </div> - </li> - <li> - <div> - Supress MSVC C4702 from __builtin_unreachable() on intentionally - unreachable code - </div> - </li> - <li> - <div> - Fix boost::function streaming error <a href="https://github.com/boostorg/test/pull/411">PR#411</a> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> - <ul> - <li> - <div> - Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for a <code><span class="identifier">value_type</span></code> - or <code><span class="identifier">init_type</span></code> (if - applicable) argument to bypass creating an intermediate object. The - argument is already the same type as the would-be intermediate object. - </div> - </li> - <li> - <div> - Optimized <code><span class="identifier">emplace</span><span class="special">()</span></code> for <code><span class="identifier">k</span><span class="special">,</span><span class="identifier">v</span></code> - arguments on map containers to delay constructing the object until - it is certain that an element should be inserted. This optimization - happens when the map’s <code><span class="identifier">key_type</span></code> - is move constructible or when the <code><span class="identifier">k</span></code> - argument is a <code><span class="identifier">key_type</span></code>. - </div> - </li> - <li> - <div> - Fixed support for allocators with explicit copy constructors (<a href="https://github.com/boostorg/unordered/pull/234">PR#234</a>). - </div> - </li> - <li> - <div> - Fixed bug in the <code><span class="keyword">const</span></code> - version of <code><span class="identifier">unordered_multimap</span><span class="special">::</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">k</span><span class="special">,</span> <span class="identifier">hash</span><span class="special">,</span> <span class="identifier">eq</span><span class="special">)</span></code> (<a href="https://github.com/boostorg/unordered/pull/238">PR#238</a>). - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/variant/">Variant</a>:</span> - <ul> - <li> - <div> - Removed more of the pre-C++11 macro and workarounds. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/wave/">Wave</a>:</span> - Fixed bugs: - <ul> - <li> - <div> - <a href="https://github.com/boostorg/wave/issues/200">#200</a>: Emitted pragmas lack terminating newline - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/wave/issues/202">#202</a>: YYMARKER not updated when fill called on BOOST_WAVE_BSIZE - boundary - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_85_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_5_1_0">B2 - version 5.1.0</a>. - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_85_0.compilers_tested"> - <h3><span class="link">Compilers Tested</span></h3> - <p> - Boost's primary test compilers are: - </p> - <ul> - <li> - <div> - Linux: - <ul> - <li> - <div> - Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, - 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, - 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, - 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - GCC, C++03: 4.6.3, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++11: 4.7.3, 4.8.5, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - OS X: - <ul> - <li> - <div> - Apple Clang, C++03: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++11: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++14: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++17: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++20: 11.0.3 - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Windows: - <ul> - <li> - <div> - Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_85_0.acknowledgements"> - <h3><span class="link">Acknowledgements</span></h3> - <p> - Marshall Clow and Glen Fernandes managed this release. - </p> - </div> diff --git a/generated/history-items.html b/generated/history-items.html index d8fb9cfd..87d433ee 100644 --- a/generated/history-items.html +++ b/generated/history-items.html @@ -1,4 +1,21 @@ +

+ Version 1.88.0

+ +

April 10th, 2025 20:39 GMT

+ +
+ + New Libraries: Updated Libraries: + +
+ + +

Version 1.87.0

diff --git a/generated/history.rss b/generated/history.rss index 4a51778f..d2733b96 100644 --- a/generated/history.rss +++ b/generated/history.rss @@ -8,7 +8,1027 @@ en-us 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) -Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 +Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlThu, 10 Apr 2025 20:39:01 +0000 + + + <div id="version_1_88_0.new_libraries"> + <h3><span class="link">New Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, + from Peter Dimov and Christian Mazakas. + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built + on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina + Šimičević. + </div> + </li> + </ul> + </div> + <div id="version_1_88_0.updated_libraries"> + <h3><span class="link">Updated Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> + <ul> + <li> + <div> + Converted documentation to AsciiDoc (Christian Mazakas). + </div> + </li> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> and + <code><span class="keyword">constexpr</span></code> as appropriate. + </div> + </li> + <li> + <div> + Marked obsolete functions as deprecated. + </div> + </li> + <li> + <div> + Removed obsolete compiler workarounds. + </div> + </li> + <li> + <div> + Changed <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;::</span><span class="identifier">begin</span><span class="special">()</span></code>, + <code><span class="identifier">cbegin</span><span class="special">()</span></code>, + <code><span class="identifier">end</span><span class="special">()</span></code>, + <code><span class="identifier">cend</span><span class="special">()</span></code> + to return <code><span class="keyword">nullptr</span></code>, enabling + <code><span class="keyword">constexpr</span></code>. This matches + the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>. + </div> + </li> + <li> + <div> + Removed local <code><span class="identifier">hash_value</span></code> + overload; <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> supports array-like types + natively. + </div> + </li> + <li> + <div> + <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;</span></code> + can now be initialized with <code><span class="special">=</span> + <span class="special">{{}}</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="keyword">operator</span><span class="special">&lt;=&gt;</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="identifier">to_array</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> + <ul> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> qualifiers + to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> + member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer + values. + </div> + </li> + <li> + <div> + Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>. + </div> + </li> + <li> + <div> + Fixed an incorrect default template argument in the implementation + of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">io_uring</span></code> + implementation so that it does not attempt to re-register internal + descriptors with the reactor after a fork, if they were not previously + registered. + </div> + </li> + <li> + <div> + Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code> + default constructor. + </div> + </li> + <li> + <div> + Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> + function. + </div> + </li> + <li> + <div> + Removed some spurious macro definitions that were left after the + removal of deprecated buffer functionality. + </div> + </li> + <li> + <div> + Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code> + when opening a file. + </div> + </li> + <li> + <div> + Added overview documentation on the available runtime configuration + options. + </div> + </li> + <li> + <div> + Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion + token. + </div> + </li> + <li> + <div> + Updated the <code><span class="identifier">async_result</span></code> + documentation to reflect the current type requirements placed on + specialisations of the trait. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> + <ul> + <li> + <div> + When <code><span class="identifier">BOOST_ASSERT_HANDLER_IS_NORETURN</span></code> + is defined, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed</span></code> + and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed_msg</span></code> are declared + as <code><span class="identifier">BOOST_NORETURN</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> + <ul> + <li> + <div> + Fixes + <ul> + <li> + <div> + Fixed out-of-bounds access in <code><span class="identifier">iequals</span></code> + function. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Improvements + <ul> + <li> + <div> + Updated SSL examples to verify peer certificate hostname. + </div> + </li> + <li> + <div> + Refactored CMakeLists. + </div> + </li> + <li> + <div> + Removed Boost.Scope dependency from examples. + </div> + </li> + <li> + <div> + Peer pings in WebSocket now count as activity. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Documentation + <ul> + <li> + <div> + Added new examples for Unix domain sockets. + </div> + </li> + <li> + <div> + Added SSL/TLS Certificate section to documentation. + </div> + </li> + <li> + <div> + Improved documentation of <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_close</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Acknowledgements + <ul> + <li> + <div> + Morten M. Neergaard + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> + <ul> + <li> + <div> + Use modern C++ in the samples and in the library 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> + Added constructor from <code><span class="identifier">native_handle_t</span></code> + to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code>. Many thanks to + <a href="https://github.com/tgmatos">Tiago Matos</a> for the + <a href="https://github.com/boostorg/dll/pull/82">PR#82</a>. + </div> + </li> + <li> + <div> + Dropped multiple dependencies on other Boost libraries including + Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more + lightweight for compilation. + </div> + </li> + <li> + <div> + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code> + in API is used instead of the <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><span class="special">&amp;</span></code>. This is not a breaking change + as <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> is convertible to <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> + <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">:</span><span class="identifier">import_</span><span class="special">*</span></code> + functions now return <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + rather than <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>. + Define <code><span class="identifier">BOOST_DLL_USE_BOOST_SHARED_PTR</span></code> + to restore the old behavior, however note that the macro will be + removed in one of the upcomming Boost releases. + </div> + </li> + <li> + <div> + Use modern C++ in the samples and in the library code. + </div> + </li> + <li> + <div> + <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> now always throws + in case of a broken binary. Updated the docs and added some tests. + </div> + </li> + <li> + <div> + Documented in FAQ why <code><span class="identifier">RTLD_NODELETE</span></code> + is missing and why there is no <code><span class="special">.</span><span class="identifier">release</span><span class="special">()</span></code> + method. Provided suggestions on possible workarounds. + </div> + </li> + <li> + <div> + Updated the information on building and using the library. CMake + targets now link with <code><span class="special">-</span><span class="identifier">ldl</span></code> if it is required by the platform. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">path_from_handle</span></code> implementation + for long paths on Windows OS. + </div> + </li> + <li> + <div> + Highlighted in the docs that <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library are experimental + and incomplete. + </div> + </li> + <li> + <div> + Fixed multiple mangling issues in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library. + </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/1370">PR#1370</a> Relax half period check in spheroidal normalization + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial + predicates + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with + integer coordinates + </div> + </li> + <li> + <div> + Several test cases has been added + </div> + </li> + <li> + <div> + Use using instead of typedef in part of the code + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Solved issues + <ul> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix + compilation error and warning) + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and + unused parameters + </div> + </li> + <li> + <div> + Various fixes of errors and warnings + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/geometry/">Graph</a>:</span> + <ul> + <li> + <div> + Bug fixes + <ul> + <li> + <div> + Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>, + resolves multiple issues. + </div> + </li> + <li> + <div> + Ensure <code><span class="identifier">named_graph</span></code> + is initialized before use. + </div> + </li> + <li> + <div> + Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code> + with Boost.Geometry, fixes incorrect results for very small + angles. + </div> + </li> + <li> + <div> + Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code> + in <code><span class="identifier">undirected_dfs</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Performance improvements + <ul> + <li> + <div> + <code><span class="identifier">adjacency_list</span></code>: + Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick + benchmark indicates a 10% improvement to graph construction + time. + </div> + </li> + <li> + <div> + <code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>: + Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code> + with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40% + improvement for large graphs. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + General Improvements + <ul> + <li> + <div> + Replace the use of several Boost utilities with C++14 language + features. + </div> + </li> + <li> + <div> + Modernize examples with C++14 language features. + </div> + </li> + <li> + <div> + Various fixes to documentation and build system. + </div> + </li> + <li> + <div> + <code><span class="identifier">vertex_by_property</span></code> + no longer requires a mutable graph. + </div> + </li> + <li> + <div> + Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code> + and Clang 19. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> + <ul> + <li> + <div> + Dropped support for C++03 and ancient compilers, updated code base + to use C++11 and MP11, reduced usage of MPL. (<a href="https://github.com/boostorg/iterator/pull/82">PR#82</a>) + </div> + </li> + <li> + <div> + Added <code><span class="identifier">min_category</span></code> + trait, which is a variadic equivalent of <code><span class="identifier">minimum_category</span></code> + that doesn't depend on MPL. <code><span class="identifier">minimum_category</span></code> + is deprecated and will be removed in a future release. + </div> + </li> + <li> + <div> + Extracted <code><span class="identifier">enable_if_convertible</span></code> + trait to a separate header <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>. + The trait was previously defined in <code><span class="identifier">iterator_adaptor</span><span class="special">.</span><span class="identifier">hpp</span></code>, + and the header still provides <code><span class="identifier">enable_if_convertible</span></code> + when included. This dependency is provided for backward compatibility + and will be removed in a future release. Users are advised to add + includes of <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>, + as needed. + </div> + </li> + <li> + <div> + Added <code><span class="special">*</span><span class="identifier">_t</span></code> + variants of various iterator traits that produce types. + </div> + </li> + <li> + <div> + <code><span class="identifier">filter_iterator</span></code> and + <code><span class="identifier">transform_iterator</span></code> + now use empty base optimization (EBO) to reduce size of the iterator + when the adopted function object is stateless. + </div> + </li> + <li> + <div> + <code><span class="identifier">zip_iterator</span></code> now + natively supports <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>, + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code> + for iterator tuples and doesn't need including Fusion support headers. + </div> + </li> + <li> + <div> + <code><span class="identifier">function_output_iterator</span></code> + no longer allows default construction when the wrapped function is + a function pointer. Such construction would previously create an + iterator with an uninitialized function pointer value, and such an + iterator would be unusable. + </div> + </li> + <li> + <div> + <code><span class="identifier">generator_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + and <code><span class="identifier">shared_container_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + headers were moved under the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span></code> + directory. The previous headers in <code><span class="identifier">boost</span></code> + are still retained for backward compatibility, but will be removed + in a future release. Users are advised to update their includes. + </div> + </li> + <li> + <div> + <code><span class="identifier">shared_container_iterator</span></code> + now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> to reference the container + internally. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is still retained, but it will incur performance overhead on the + iterator construction, as <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is now wrapped in a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + internally. It is recommended to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + to reference the container. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> + <ul> + <li> + <div> + Raised required ICU version to at least 4.8.1 + </div> + </li> + <li> + <div> + Dropped support for ICU 50.1 + </div> + </li> + <li> + <div> + Fixed parsing of integers with input strings in floating point format + (<a href="https://github.com/boostorg/locale/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Support parsing and formatting of <code><span class="identifier">uint64_t</span></code> + values with the ICU backend (<a href="https://github.com/boostorg/locale/pull/246">PR#246</a>) + </div> + </li> + <li> + <div> + Support <code><span class="identifier">char8_t</span></code> on + more platforms + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span> + <ul> + <li> + <div> + Added new spsc_value, a lockfree single-producer single-consumer + value based on a triple-buffer + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> + <ul> + <li> + <div> + Disabled usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char16_t</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char32_t</span><span class="special">&gt;</span></code> locale facets in C++20 and later + modes as they were deprecated in C++20. This means character code + conversions to/from <code><span class="keyword">char16_t</span></code> + and <code><span class="keyword">char32_t</span></code> is no longer + available in C++20 and later. + </div> + </li> + <li> + <div> + Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code> + when the backend was configured to append to an existing file and + the actively written file name pattern didn't have a counter placeholder + but the target file name pattern did, and the log files were written + directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</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> + Fixed <code><span class="identifier">mp_from_sequence</span></code> + for non-integral values (accidentally broken in 1.83.0 due to offset + support) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> + <ul> + <li> + <div> + <code><span class="identifier">connection_pool</span></code> now + resizes correctly even in the presence of many connections with session + establishment in-progress. The old algorithm could lead to the pool + not being resized as expected under certain conditions (<a href="https://github.com/boostorg/mysql/issues/395">#395</a>). + </div> + </li> + <li> + <div> + Added <code><span class="identifier">any_connection</span><span class="special">::</span><span class="identifier">connection_id</span></code>. + This function retrieves the connection's ID, which can subsequently + be used in <code><span class="identifier">KILL</span></code> SQL + statements to cancel queries. This function is equivalent to <code><span class="identifier">mysql_thread_id</span></code> in the official + C API (<a href="https://github.com/boostorg/mysql/issues/408">#408</a>) + </div> + </li> + <li> + <div> + Attempting to start an async operation on a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + while another operation is in-progress no longer triggers undefined + behavior. It now fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">operation_in_progress</span></code> + (<a href="https://github.com/boostorg/mysql/issues/405">#405</a>). + </div> + </li> + <li> + <div> + Attempting to start an operation while a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + are engaged in a multi-function operation no longer yields potentially + dangerous packet mismatches. It instead fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">engaged_in_multi_function</span></code> (<a href="https://github.com/boostorg/mysql/issues/448">#448</a>). + </div> + </li> + <li> + <div> + Improved diagnostics when attempting to use a connection without + a established session. Operations now fail with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">not_connected</span></code> + (<a href="https://github.com/boostorg/mysql/issues/450">#450</a>). + </div> + </li> + <li> + <div> + Fixed a race condition in <code><span class="identifier">connection</span></code> + and <code><span class="identifier">any_connection</span></code> + regarding per-operation cancellation. In previous versions, if a + cancellation signal was emitted after an intermediate async operation + had completed, but before its handler had been called, the signal + was ignored. This is no longer the case (<a href="https://github.com/boostorg/mysql/issues/199">#199</a>). + </div> + </li> + <li> + <div> + <code><span class="identifier">field</span></code>'s constructor + and assignment from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> + are now available in C++17, rather than C++20. These functions were + guarded by standard feature-test macros, only available in C++20. + These have been replaced by their Boost.Config equivalents. + </div> + </li> + <li> + <div> + Added an HTTP server example that uses C++20 coroutines. + </div> + </li> + <li> + <div> + Added a doc page on interfacing sync and async code. This replaces + the synchronous connection pool snippet, which contained a race condition. + </div> + </li> + <li> + <div> + Improved some of the other examples and doc pages. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> + <ul> + <li> + <div> + Make <code><span class="identifier">getenv</span></code> thread-safe + (<a href="https://github.com/boostorg/nowide/pull/191">PR#191</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> + Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant_collection</span></code>, a closed polymorphic + collection similar in behavior to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;...&gt;&gt;</span></code>. + </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> + Fix <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> + for wide streams (accidentally broken in 1.87.0) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> + <ul> + <li> + <div> + Use <code><span class="identifier">GetModuleNames</span></code> + to determine the full module path for MSVC implementation. Many thanks + to <a href="https://github.com/Dani-Hub">Daniel Krügler</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/198">PR#198</a>. + </div> + </li> + <li> + <div> + Print relative addresses to allow their decoding later without knowing + the base address. The logic could be disabled by defining <code><span class="identifier">BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE</span></code>. + Many thanks to <a href="https://github.com/McCzarny">Maciej Czarnecki</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/200">PR#200</a>. + </div> + </li> + <li> + <div> + Expose all the stacktrace libraries as b2 features for better control + over the build and explicit information on what libraries are built. + See "Configuration and Build" section for more info. Many + thanks to <a href="https://github.com/uilianries">Uilian Ries</a> + for initial implementation of the feature in <a href="https://github.com/boostorg/stacktrace/pull/202">PR#202</a>. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">stacktrace_from_exception</span></code> + builds with MinGW. Thanks to <a href="https://github.com/crhilton">crhilton</a> + for the fix. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> + <ul> + <li> + <div> + Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented + the library from building on clang-20. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> + <ul> + <li> + <div> + Migrated the documentation to a multipage format using Antora. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> + <ul> + <li> + <div> + Use the smallest appropriate unsigned type for the index. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + <div id="version_1_88_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_88_0.acknowledgements"> + <h3><span class="link">Acknowledgements</span></h3> + <p> + Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release. + </p> + </div> +Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 <div id="version_1_87_0.new_libraries"> diff --git a/generated/home-items.html b/generated/home-items.html index ed3bfaff..c3d807b3 100644 --- a/generated/home-items.html +++ b/generated/home-items.html @@ -3,11 +3,7 @@

Current Release

-

Beta Release

-

More Downloads... (RSS)

@@ -18,6 +14,14 @@
    +
  • Version 1.88.0 + + New Libraries: Updated Libraries: + + April 10th, 2025 20:39 GMT
  • Version 1.87.0 August 14th, 2024 16:07 GMT
  • -
  • Version 1.85.0 - - New Libraries: Charconv, Scope. Updated Libraries: Asio, Atomic, Beast, Bimap, - Bind, Conversion, Core, Filesystem, Function, Geometry, Iterator, JSON, LEAF, - LexicalCast, Locale, Math, MSM, Multi-index, Multiprecision, MySQL, Odeint, - PFR, Random, System, Stacktrace, STLInterfaces, Test, Unordered, Variant, Wave. - - April 15th, 2024 17:38 GMT
+ "news-date">August 14th, 2024 16:07 GMT

More News... (RSS)

diff --git a/generated/libraries.txt b/generated/libraries.txt index 349a65bc..861a933d 100644 Binary files a/generated/libraries.txt and b/generated/libraries.txt differ diff --git a/generated/menu-doc.html b/generated/menu-doc.html index 30306858..347bea35 100644 --- a/generated/menu-doc.html +++ b/generated/menu-doc.html @@ -9,9 +9,12 @@ Libraries > -

- Version 1.83.0

- -

August 11th, 2023 16:23 GMT

- -
- - New Libraries: Compat. Updated Libraries: Any, Atomic, Chrono, Compat, Core, - DLL, Filesystem, Flyweight, Geometry, Iterator, JSON, Locale, Log, Math, Mp11, - Multi-index Containers, Multiprecision, MySQL, Ratio, Test, Timer, Unordered, - URL, UUID, Variant2. Updated Tools: Build. - -
- - \ No newline at end of file diff --git a/generated/news.rss b/generated/news.rss index a879e355..33ec1fe7 100644 --- a/generated/news.rss +++ b/generated/news.rss @@ -8,7 +8,1027 @@ en-us 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) -Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 +Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlThu, 10 Apr 2025 20:39:01 +0000 + + + <div id="version_1_88_0.new_libraries"> + <h3><span class="link">New Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, + from Peter Dimov and Christian Mazakas. + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built + on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina + Šimičević. + </div> + </li> + </ul> + </div> + <div id="version_1_88_0.updated_libraries"> + <h3><span class="link">Updated Libraries</span></h3> + <ul> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> + <ul> + <li> + <div> + Converted documentation to AsciiDoc (Christian Mazakas). + </div> + </li> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> and + <code><span class="keyword">constexpr</span></code> as appropriate. + </div> + </li> + <li> + <div> + Marked obsolete functions as deprecated. + </div> + </li> + <li> + <div> + Removed obsolete compiler workarounds. + </div> + </li> + <li> + <div> + Changed <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;::</span><span class="identifier">begin</span><span class="special">()</span></code>, + <code><span class="identifier">cbegin</span><span class="special">()</span></code>, + <code><span class="identifier">end</span><span class="special">()</span></code>, + <code><span class="identifier">cend</span><span class="special">()</span></code> + to return <code><span class="keyword">nullptr</span></code>, enabling + <code><span class="keyword">constexpr</span></code>. This matches + the behavior of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">array</span></code>. + </div> + </li> + <li> + <div> + Removed local <code><span class="identifier">hash_value</span></code> + overload; <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash</span></code> supports array-like types + natively. + </div> + </li> + <li> + <div> + <code><span class="identifier">array</span><span class="special">&lt;</span><span class="identifier">T</span><span class="special">,</span> <span class="number">0</span><span class="special">&gt;</span></code> + can now be initialized with <code><span class="special">=</span> + <span class="special">{{}}</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="keyword">operator</span><span class="special">&lt;=&gt;</span></code>. + </div> + </li> + <li> + <div> + Added <code><span class="identifier">to_array</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> + <ul> + <li> + <div> + Added <code><span class="keyword">noexcept</span></code> qualifiers + to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> + member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer + values. + </div> + </li> + <li> + <div> + Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>. + </div> + </li> + <li> + <div> + Fixed an incorrect default template argument in the implementation + of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. + </div> + </li> + <li> + <div> + Fixed the <code><span class="identifier">io_uring</span></code> + implementation so that it does not attempt to re-register internal + descriptors with the reactor after a fork, if they were not previously + registered. + </div> + </li> + <li> + <div> + Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code> + default constructor. + </div> + </li> + <li> + <div> + Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> + function. + </div> + </li> + <li> + <div> + Removed some spurious macro definitions that were left after the + removal of deprecated buffer functionality. + </div> + </li> + <li> + <div> + Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code> + when opening a file. + </div> + </li> + <li> + <div> + Added overview documentation on the available runtime configuration + options. + </div> + </li> + <li> + <div> + Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion + token. + </div> + </li> + <li> + <div> + Updated the <code><span class="identifier">async_result</span></code> + documentation to reflect the current type requirements placed on + specialisations of the trait. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> + <ul> + <li> + <div> + When <code><span class="identifier">BOOST_ASSERT_HANDLER_IS_NORETURN</span></code> + is defined, <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed</span></code> + and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">assertion_failed_msg</span></code> are declared + as <code><span class="identifier">BOOST_NORETURN</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> + <ul> + <li> + <div> + Fixes + <ul> + <li> + <div> + Fixed out-of-bounds access in <code><span class="identifier">iequals</span></code> + function. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Improvements + <ul> + <li> + <div> + Updated SSL examples to verify peer certificate hostname. + </div> + </li> + <li> + <div> + Refactored CMakeLists. + </div> + </li> + <li> + <div> + Removed Boost.Scope dependency from examples. + </div> + </li> + <li> + <div> + Peer pings in WebSocket now count as activity. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Documentation + <ul> + <li> + <div> + Added new examples for Unix domain sockets. + </div> + </li> + <li> + <div> + Added SSL/TLS Certificate section to documentation. + </div> + </li> + <li> + <div> + Improved documentation of <code><span class="identifier">websocket</span><span class="special">::</span><span class="identifier">stream</span><span class="special">::</span><span class="identifier">async_close</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Acknowledgements + <ul> + <li> + <div> + Morten M. Neergaard + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> + <ul> + <li> + <div> + Use modern C++ in the samples and in the library 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> + Added constructor from <code><span class="identifier">native_handle_t</span></code> + to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">::</span><span class="identifier">shared_library</span></code>. Many thanks to + <a href="https://github.com/tgmatos">Tiago Matos</a> for the + <a href="https://github.com/boostorg/dll/pull/82">PR#82</a>. + </div> + </li> + <li> + <div> + Dropped multiple dependencies on other Boost libraries including + Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more + lightweight for compilation. + </div> + </li> + <li> + <div> + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">error_code</span><span class="special">&amp;</span></code> + in API is used instead of the <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><span class="special">&amp;</span></code>. This is not a breaking change + as <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> is convertible to <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> + <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dll</span><span class="special">:</span><span class="identifier">import_</span><span class="special">*</span></code> + functions now return <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + rather than <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code>. + Define <code><span class="identifier">BOOST_DLL_USE_BOOST_SHARED_PTR</span></code> + to restore the old behavior, however note that the macro will be + removed in one of the upcomming Boost releases. + </div> + </li> + <li> + <div> + Use modern C++ in the samples and in the library code. + </div> + </li> + <li> + <div> + <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> now always throws + in case of a broken binary. Updated the docs and added some tests. + </div> + </li> + <li> + <div> + Documented in FAQ why <code><span class="identifier">RTLD_NODELETE</span></code> + is missing and why there is no <code><span class="special">.</span><span class="identifier">release</span><span class="special">()</span></code> + method. Provided suggestions on possible workarounds. + </div> + </li> + <li> + <div> + Updated the information on building and using the library. CMake + targets now link with <code><span class="special">-</span><span class="identifier">ldl</span></code> if it is required by the platform. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">detail</span><span class="special">::</span><span class="identifier">path_from_handle</span></code> implementation + for long paths on Windows OS. + </div> + </li> + <li> + <div> + Highlighted in the docs that <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library are experimental + and incomplete. + </div> + </li> + <li> + <div> + Fixed multiple mangling issues in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">dll</span><span class="special">/</span><span class="identifier">smart_</span><span class="special">*</span></code> parts of the library. + </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/1370">PR#1370</a> Relax half period check in spheroidal normalization + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial + predicates + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with + integer coordinates + </div> + </li> + <li> + <div> + Several test cases has been added + </div> + </li> + <li> + <div> + Use using instead of typedef in part of the code + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Solved issues + <ul> + <li> + <div> + <a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix + compilation error and warning) + </div> + </li> + <li> + <div> + <a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and + unused parameters + </div> + </li> + <li> + <div> + Various fixes of errors and warnings + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/geometry/">Graph</a>:</span> + <ul> + <li> + <div> + Bug fixes + <ul> + <li> + <div> + Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>, + resolves multiple issues. + </div> + </li> + <li> + <div> + Ensure <code><span class="identifier">named_graph</span></code> + is initialized before use. + </div> + </li> + <li> + <div> + Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code> + with Boost.Geometry, fixes incorrect results for very small + angles. + </div> + </li> + <li> + <div> + Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code> + in <code><span class="identifier">undirected_dfs</span></code>. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + Performance improvements + <ul> + <li> + <div> + <code><span class="identifier">adjacency_list</span></code>: + Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick + benchmark indicates a 10% improvement to graph construction + time. + </div> + </li> + <li> + <div> + <code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>: + Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code> + with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40% + improvement for large graphs. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + General Improvements + <ul> + <li> + <div> + Replace the use of several Boost utilities with C++14 language + features. + </div> + </li> + <li> + <div> + Modernize examples with C++14 language features. + </div> + </li> + <li> + <div> + Various fixes to documentation and build system. + </div> + </li> + <li> + <div> + <code><span class="identifier">vertex_by_property</span></code> + no longer requires a mutable graph. + </div> + </li> + <li> + <div> + Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code> + and Clang 19. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> + <ul> + <li> + <div> + Dropped support for C++03 and ancient compilers, updated code base + to use C++11 and MP11, reduced usage of MPL. (<a href="https://github.com/boostorg/iterator/pull/82">PR#82</a>) + </div> + </li> + <li> + <div> + Added <code><span class="identifier">min_category</span></code> + trait, which is a variadic equivalent of <code><span class="identifier">minimum_category</span></code> + that doesn't depend on MPL. <code><span class="identifier">minimum_category</span></code> + is deprecated and will be removed in a future release. + </div> + </li> + <li> + <div> + Extracted <code><span class="identifier">enable_if_convertible</span></code> + trait to a separate header <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>. + The trait was previously defined in <code><span class="identifier">iterator_adaptor</span><span class="special">.</span><span class="identifier">hpp</span></code>, + and the header still provides <code><span class="identifier">enable_if_convertible</span></code> + when included. This dependency is provided for backward compatibility + and will be removed in a future release. Users are advised to add + includes of <code><span class="identifier">enable_if_convertible</span><span class="special">.</span><span class="identifier">hpp</span></code>, + as needed. + </div> + </li> + <li> + <div> + Added <code><span class="special">*</span><span class="identifier">_t</span></code> + variants of various iterator traits that produce types. + </div> + </li> + <li> + <div> + <code><span class="identifier">filter_iterator</span></code> and + <code><span class="identifier">transform_iterator</span></code> + now use empty base optimization (EBO) to reduce size of the iterator + when the adopted function object is stateless. + </div> + </li> + <li> + <div> + <code><span class="identifier">zip_iterator</span></code> now + natively supports <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tuple</span></code>, + <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">tuple</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span></code> + for iterator tuples and doesn't need including Fusion support headers. + </div> + </li> + <li> + <div> + <code><span class="identifier">function_output_iterator</span></code> + no longer allows default construction when the wrapped function is + a function pointer. Such construction would previously create an + iterator with an uninitialized function pointer value, and such an + iterator would be unusable. + </div> + </li> + <li> + <div> + <code><span class="identifier">generator_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + and <code><span class="identifier">shared_container_iterator</span><span class="special">.</span><span class="identifier">hpp</span></code> + headers were moved under the <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">iterator</span></code> + directory. The previous headers in <code><span class="identifier">boost</span></code> + are still retained for backward compatibility, but will be removed + in a future release. Users are advised to update their includes. + </div> + </li> + <li> + <div> + <code><span class="identifier">shared_container_iterator</span></code> + now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> to reference the container + internally. The support for <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is still retained, but it will incur performance overhead on the + iterator construction, as <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + is now wrapped in a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + internally. It is recommended to use <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_ptr</span></code> + to reference the container. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> + <ul> + <li> + <div> + Raised required ICU version to at least 4.8.1 + </div> + </li> + <li> + <div> + Dropped support for ICU 50.1 + </div> + </li> + <li> + <div> + Fixed parsing of integers with input strings in floating point format + (<a href="https://github.com/boostorg/locale/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Support parsing and formatting of <code><span class="identifier">uint64_t</span></code> + values with the ICU backend (<a href="https://github.com/boostorg/locale/pull/246">PR#246</a>) + </div> + </li> + <li> + <div> + Support <code><span class="identifier">char8_t</span></code> on + more platforms + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span> + <ul> + <li> + <div> + Added new spsc_value, a lockfree single-producer single-consumer + value based on a triple-buffer + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> + <ul> + <li> + <div> + Disabled usage of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char16_t</span><span class="special">&gt;</span></code> and <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">codecvt</span><span class="special">&lt;</span><span class="keyword">char32_t</span><span class="special">&gt;</span></code> locale facets in C++20 and later + modes as they were deprecated in C++20. This means character code + conversions to/from <code><span class="keyword">char16_t</span></code> + and <code><span class="keyword">char32_t</span></code> is no longer + available in C++20 and later. + </div> + </li> + <li> + <div> + Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>) + </div> + </li> + <li> + <div> + Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code> + when the backend was configured to append to an existing file and + the actively written file name pattern didn't have a counter placeholder + but the target file name pattern did, and the log files were written + directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</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> + Fixed <code><span class="identifier">mp_from_sequence</span></code> + for non-integral values (accidentally broken in 1.83.0 due to offset + support) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> + <ul> + <li> + <div> + <code><span class="identifier">connection_pool</span></code> now + resizes correctly even in the presence of many connections with session + establishment in-progress. The old algorithm could lead to the pool + not being resized as expected under certain conditions (<a href="https://github.com/boostorg/mysql/issues/395">#395</a>). + </div> + </li> + <li> + <div> + Added <code><span class="identifier">any_connection</span><span class="special">::</span><span class="identifier">connection_id</span></code>. + This function retrieves the connection's ID, which can subsequently + be used in <code><span class="identifier">KILL</span></code> SQL + statements to cancel queries. This function is equivalent to <code><span class="identifier">mysql_thread_id</span></code> in the official + C API (<a href="https://github.com/boostorg/mysql/issues/408">#408</a>) + </div> + </li> + <li> + <div> + Attempting to start an async operation on a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + while another operation is in-progress no longer triggers undefined + behavior. It now fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">operation_in_progress</span></code> + (<a href="https://github.com/boostorg/mysql/issues/405">#405</a>). + </div> + </li> + <li> + <div> + Attempting to start an operation while a <code><span class="identifier">connection</span></code> + or <code><span class="identifier">any_connection</span></code> + are engaged in a multi-function operation no longer yields potentially + dangerous packet mismatches. It instead fails with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">engaged_in_multi_function</span></code> (<a href="https://github.com/boostorg/mysql/issues/448">#448</a>). + </div> + </li> + <li> + <div> + Improved diagnostics when attempting to use a connection without + a established session. Operations now fail with <code><span class="identifier">client_errc</span><span class="special">::</span><span class="identifier">not_connected</span></code> + (<a href="https://github.com/boostorg/mysql/issues/450">#450</a>). + </div> + </li> + <li> + <div> + Fixed a race condition in <code><span class="identifier">connection</span></code> + and <code><span class="identifier">any_connection</span></code> + regarding per-operation cancellation. In previous versions, if a + cancellation signal was emitted after an intermediate async operation + had completed, but before its handler had been called, the signal + was ignored. This is no longer the case (<a href="https://github.com/boostorg/mysql/issues/199">#199</a>). + </div> + </li> + <li> + <div> + <code><span class="identifier">field</span></code>'s constructor + and assignment from <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">string_view</span></code> + are now available in C++17, rather than C++20. These functions were + guarded by standard feature-test macros, only available in C++20. + These have been replaced by their Boost.Config equivalents. + </div> + </li> + <li> + <div> + Added an HTTP server example that uses C++20 coroutines. + </div> + </li> + <li> + <div> + Added a doc page on interfacing sync and async code. This replaces + the synchronous connection pool snippet, which contained a race condition. + </div> + </li> + <li> + <div> + Improved some of the other examples and doc pages. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> + <ul> + <li> + <div> + Make <code><span class="identifier">getenv</span></code> thread-safe + (<a href="https://github.com/boostorg/nowide/pull/191">PR#191</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> + Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">variant_collection</span></code>, a closed polymorphic + collection similar in behavior to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special">&lt;</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">variant</span><span class="special">&lt;...&gt;&gt;</span></code>. + </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> + Fix <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code> + for wide streams (accidentally broken in 1.87.0) + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> + <ul> + <li> + <div> + Use <code><span class="identifier">GetModuleNames</span></code> + to determine the full module path for MSVC implementation. Many thanks + to <a href="https://github.com/Dani-Hub">Daniel Krügler</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/198">PR#198</a>. + </div> + </li> + <li> + <div> + Print relative addresses to allow their decoding later without knowing + the base address. The logic could be disabled by defining <code><span class="identifier">BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE</span></code>. + Many thanks to <a href="https://github.com/McCzarny">Maciej Czarnecki</a> + for the <a href="https://github.com/boostorg/stacktrace/pull/200">PR#200</a>. + </div> + </li> + <li> + <div> + Expose all the stacktrace libraries as b2 features for better control + over the build and explicit information on what libraries are built. + See "Configuration and Build" section for more info. Many + thanks to <a href="https://github.com/uilianries">Uilian Ries</a> + for initial implementation of the feature in <a href="https://github.com/boostorg/stacktrace/pull/202">PR#202</a>. + </div> + </li> + <li> + <div> + Fixed <code><span class="identifier">stacktrace_from_exception</span></code> + builds with MinGW. Thanks to <a href="https://github.com/crhilton">crhilton</a> + for the fix. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> + <ul> + <li> + <div> + Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented + the library from building on clang-20. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> + <ul> + <li> + <div> + Migrated the documentation to a multipage format using Antora. + </div> + </li> + </ul> + </div> + </li> + <li> + <div> + <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> + <ul> + <li> + <div> + Use the smallest appropriate unsigned type for the index. + </div> + </li> + </ul> + </div> + </li> + </ul> + </div> + <div id="version_1_88_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_88_0.acknowledgements"> + <h3><span class="link">Acknowledgements</span></h3> + <p> + Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release. + </p> + </div> +Version 1.87.0https://www.boost.org/users/history/version_1_87_0.htmlhttps://www.boost.org/users/history/version_1_87_0.htmlThu, 12 Dec 2024 00:52:33 +0000 <div id="version_1_87_0.new_libraries"> @@ -5958,1043 +6978,6 @@ Marshall Clow and Glen Fernandes managed this release. </p> </div> -Version 1.83.0https://www.boost.org/users/history/version_1_83_0.htmlhttps://www.boost.org/users/history/version_1_83_0.htmlFri, 11 Aug 2023 16:23:02 +0000 - - - <div id="version_1_83_0.known_issues"> - <h3><span class="link">Known Issues</span></h3> - <p> - These are patches from library authors which were found too late to be fixed - in the release. - </p> - <ul> - <li> - <div> - JSON - <ul> - <li> - <div> - Compilation on Windows ARM platforms may fail for missing intrinsics, - see <a href="https://github.com/boostorg/json/issues/926">#926</a> and <a href="https://github.com/boostorg/json/issues/927">#927</a>. <a href="https://github.com/boostorg/json/commit/c4ce8509d015a0b75cfa9d36609b8409821a9c86.patch">Patch</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Unordered - <ul> - <li> - <div> - Fix erroneous copy assigment operator that would destroy non-existent - elements, see <a href="https://github.com/boostorg/unordered/issues/205">#205</a>. <a href="https://www.boost.org/patches/1_83_0/0001-unordered-fix-copy-assign.patch">Patch</a>. - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_83_0.new_libraries"> - <h3><span class="link">New Libraries</span></h3> - <ul> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span> A repository of C++11 - implementations of standard components added in later C++ standards, from - Peter Dimov and contributors. - </div> - </li> - </ul> - </div> - <div id="version_1_83_0.updated_libraries"> - <h3><span class="link">Updated Libraries</span></h3> - <ul> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/any/">Any</a>:</span> - <ul> - <li> - <div> - New <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">anys</span><span class="special">::</span><span class="identifier">unique_any</span></code> C++11 class - an alternative - to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">any</span></code> (or to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">any</span></code>) - that does not require copy or move construction from the held type. - </div> - </li> - <li> - <div> - Ported documentation to Quickbook, Doxygen comments now used in code. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/atomic/">Atomic</a>:</span> - <ul> - <li> - <div> - Fixed compilation of <code><span class="identifier">atomic_ref</span></code> - for <code><span class="keyword">const</span></code>-qualified - types. Note that even <code><span class="keyword">const</span></code>-qualified - atomic objects must still reside in read-write memory. (<a href="https://github.com/boostorg/atomic/issues/62">#62</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/chrono/">Chrono</a>:</span> - <ul> - <li> - <div> - Remove use of deprecated Boost.Ratio features. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/compat/">Compat</a>:</span> - <ul> - <li> - <div> - Added <code><span class="identifier">latch</span><span class="special">.</span><span class="identifier">hpp</span></code>, an implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">latch</span></code> (contributed by Christian - Mazakas.) - </div> - </li> - <li> - <div> - Added <code><span class="identifier">shared_lock</span><span class="special">.</span><span class="identifier">hpp</span></code>, - a (partial) implementation of <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">shared_lock</span></code> - (contributed by Christian Mazakas.) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/core/">Core</a>:</span> - <ul> - <li> - <div> - Added support for incomplete types to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">type_name</span></code>. - </div> - </li> - <li> - <div> - Bit manipulation functions in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code> - are now <code><span class="keyword">constexpr</span></code> on - recent MSVC versions (VS2019 update 5 and later.) - </div> - </li> - <li> - <div> - Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">core</span><span class="special">::</span><span class="identifier">byteswap</span></code> (an implementation of - <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">byteswap</span></code> from C++23) to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">bit</span><span class="special">.</span><span class="identifier">hpp</span></code>. - </div> - </li> - <li> - <div> - Moved the yield primitives <code><span class="identifier">sp_thread_pause</span></code>, - <code><span class="identifier">sp_thread_yield</span></code>, - <code><span class="identifier">sp_thread_sleep</span></code> from - SmartPtr implementation details to <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">core</span><span class="special">/</span><span class="identifier">yield_primitives</span><span class="special">.</span><span class="identifier">hpp</span></code>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> - <ul> - <li> - <div> - Fixed tests failures on glibc 2.36+, thanks to <a href="https://github.com/sgn">Đoàn - Trần Công Danh</a> for the bugreport <a href="https://github.com/boostorg/dll/issues/58">#58</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/filesystem/">Filesystem</a>:</span> - <ul> - <li> - <div> - Added <code><span class="identifier">directory_entry</span><span class="special">::</span><span class="identifier">refresh</span></code> - method that updates internal cached file statuses for the directory - entry identified by path. - </div> - </li> - <li> - <div> - <strong>v4:</strong> <code><span class="identifier">directory_entry</span></code> - constructors and modifiers that initialize or modify the path now - automatically call <code><span class="identifier">refresh</span></code>. - This may result in errors that were not indicated before and in - <strong>v3</strong>, if querying the filesystem for - file statuses fails (e.g. if the file does not exist). This new behavior - is similar to std::filesystem. - </div> - </li> - <li> - <div> - <strong>v4:</strong> <code><span class="identifier">directory_entry</span></code> - constructors and methods taking <code><span class="identifier">file_status</span></code> - parameters are removed. Users are recommended to remove these arguments - and rely on <code><span class="identifier">directory_entry</span></code> - calling <code><span class="identifier">refresh</span></code> internally. - </div> - </li> - <li> - <div> - Added <code><span class="identifier">directory_entry</span></code> - member methods for checking the file type of the file, similar to - std::filesystem. - </div> - </li> - <li> - <div> - Added more methods for testing file status: <code><span class="identifier">is_block_file</span></code>, - <code><span class="identifier">is_character_file</span></code>, - <code><span class="identifier">is_fifo</span></code>, <code><span class="identifier">is_socket</span></code> and <code><span class="identifier">is_reparse_file</span></code>. - </div> - </li> - <li> - <div> - <code><span class="identifier">recursive_directory_iterator</span></code> - is now more likely to reuse information about the file type that - is obtained during filesystem iteration. This may improve performance. - (<a href="https://github.com/boostorg/filesystem/issues/288">#288</a>) - </div> - </li> - <li> - <div> - File streams defined in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">fstream</span><span class="special">.</span><span class="identifier">hpp</span></code> - are now movable, if the standard library file streams are. (<a href="https://github.com/boostorg/filesystem/issues/280">#280</a>) - </div> - </li> - <li> - <div> - Added a new header <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">filesystem</span><span class="special">/</span><span class="identifier">cstdio</span><span class="special">.</span><span class="identifier">hpp</span></code> - with a portable <code><span class="identifier">fopen</span></code> - overload that takes <code><span class="identifier">path</span></code> - as the first argument. This function is equivalent to <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">fopen</span></code>, except that on Windows it - uses the native wide character encoding for paths. - </div> - </li> - <li> - <div> - Generic <code><span class="identifier">path</span></code> comparison - operators are now more restricted to avoid potential ambiguities - when user's code contains a <code><span class="keyword">using</span> - <span class="keyword">namespace</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">filesystem</span><span class="special">;</span></code> directive. (<a href="https://github.com/boostorg/filesystem/issues/285">#285</a>) - </div> - </li> - <li> - <div> - Fixed potential overload resolution ambiguity in users' code, where - <code><span class="identifier">path</span></code> constructors - from iterators could interfere with function overloads taking a - <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">initializer_list</span></code> argument. (<a href="https://github.com/boostorg/filesystem/issues/287">#287</a>) - </div> - </li> - <li> - <div> - On Windows, added more workarounds for errors returned by various - filesystems when creating a directory iterator. (<a href="https://github.com/boostorg/filesystem/issues/284">#284</a>, - <a href="https://github.com/boostorg/filesystem/issues/286">#286</a>) - </div> - </li> - <li> - <div> - On Windows, relaxed access rights needed for querying file times. - (<a href="https://github.com/boostorg/filesystem/issues/290">#290</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/flyweight/index.html">Flyweight</a>:</span> - <ul> - <li> - <div> - Added smart-pointer syntax to <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">flyweight</span></code> - (<code><span class="keyword">operator</span><span class="special">*</span></code> - and <code><span class="keyword">operator</span><span class="special">-&gt;</span></code> - dereferencing to the underlying value). - </div> - </li> - <li> - <div> - Fixed a situation where the mutex used by <a href="https://www.boost.org/libs/flyweight/doc/reference/locking.html#simple_locking_synopsis"><code><span class="identifier">simple_locking</span></code></a> was not - recursive (issue <a href="https://github.com/boostorg/flyweight/issues/12">#12</a>). - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/geometry/">Geometry</a>:</span> - <ul> - <li> - <div> - Improvements - <ul> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1140">PR#1140</a> Drop dependencies and replace boost with - std in several places - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1154">PR#1154</a> Add missing headers so that all headers - compile independently complying with Boost policy - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/pull/1157">PR#1157</a> Check const Ring concept in calculate_point_order - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Solved issues - <ul> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1100">#1100</a> Fix for union - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1139">#1139</a> Fix for different geometry types - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1158">#1158</a> Fix for convex hull - </div> - </li> - <li> - <div> - <a href="https://github.com/boostorg/geometry/issues/1161">#1161</a> Fix within algorithm for geometries having - a pole as a vertex - </div> - </li> - <li> - <div> - Various fixes of errors and warnings - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> - <ul> - <li> - <div> - Added <code><span class="identifier">is_iterator</span></code> - type trait that allows to test whether the type qualifies as an iterator - type. - </div> - </li> - <li> - <div> - <code><span class="identifier">filter_iterator</span></code> now - supports move-construction of the adopted iterator and the function - object. (<a href="https://github.com/boostorg/iterator/pull/79">PR#79</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/json/">JSON</a>:</span> - <ul> - <li> - <div> - The library now only throws <code><span class="identifier">system_error</span></code>, - except for when allocation failed, in which case <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">bad_alloc</span></code> - is thrown. - </div> - </li> - <li> - <div> - Serialization behavior can now be changed by <code><span class="identifier">serialize_options</span></code>. - </div> - </li> - <li> - <div> - Contextual conversions. - </div> - </li> - <li> - <div> - Parser option for more precise number parsing. - </div> - </li> - <li> - <div> - Support <code><span class="identifier">parse_options</span></code> - in stream <code><span class="keyword">operator</span><span class="special">&lt;&lt;</span></code>. - </div> - </li> - <li> - <div> - Parser option to allow <code><span class="identifier">Infinity</span></code> - and <code><span class="identifier">NaN</span></code> JSON literals. - </div> - </li> - <li> - <div> - Parser mode that only validates numbers rather than parsing them. - </div> - </li> - <li> - <div> - Numbers with exponent larger than <code><span class="identifier">INT_MAX</span></code> - are accepted by the parser and treated as infinity. - </div> - </li> - <li> - <div> - Fix <code><span class="identifier">object</span></code> member - functions that should provide strong guarantee. - </div> - </li> - <li> - <div> - Fix ambiguity of <code><span class="identifier">end</span></code> - call when <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">range</span><span class="special">.</span><span class="identifier">hpp</span></code> is included. - </div> - </li> - <li> - <div> - Fix ASan failures. - </div> - </li> - <li> - <div> - Fix error message for <code><span class="identifier">error</span><span class="special">::</span><span class="identifier">size_mismatch</span></code>. - </div> - </li> - <li> - <div> - Fix conversion into tuple with const elements. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/locale/index.html">Locale</a>:</span> - <ul> - <li> - <div> - Bitwise/binary operators (left/right shift, binary and/or/xor/not) - are no longer supported in message catalog files matching GNU gettext - behavior - </div> - </li> - <li> - <div> - Std backend on Windows uses the classic locale instead of the system - locale when the requested locale does not exist (now same as on other - OSs) - </div> - </li> - <li> - <div> - <code><span class="identifier">localization_backend_manager</span><span class="special">::</span><span class="identifier">get</span></code> - is deprecated, use the generator instead - </div> - </li> - <li> - <div> - New converter classes as alternative to <code><span class="identifier">to_utf</span></code>/<code><span class="identifier">from_utf</span></code>/<code><span class="identifier">between</span></code> - </div> - </li> - <li> - <div> - Fix UB on invalid index in format strings - </div> - </li> - <li> - <div> - Fix conversion of UTF to e.g. iso-2022-jp on Windows without ICU - </div> - </li> - <li> - <div> - Use <code><span class="keyword">long</span> <span class="keyword">long</span></code> - as the count parameter for pluralized translations - </div> - </li> - <li> - <div> - Fix movability and exception specification for some classes - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> - <ul> - <li> - <div> - Fixed a possible infinite loop in <code><span class="identifier">text_file_backend</span></code>, - when the size of a formatted log record exceeds the <code><span class="identifier">rotation_size</span></code> limit. (<a href="https://github.com/boostorg/log/issues/209">#209</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/math/">Math</a>:</span> - <ul> - <li> - <div> - Added Numerical evaluation of Fourier transform of Daubechies scaling - functions <a href="https://github.com/boostorg/math/pull/921">921</a>. - </div> - </li> - <li> - <div> - Added logcdf function to statistical distributions <a href="https://github.com/boostorg/math/pull/946">946</a>. - </div> - </li> - <li> - <div> - Added support for C++23's <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code> - types <a href="https://github.com/boostorg/math/pull/978">978</a>. - </div> - </li> - <li> - <div> - Fixed various <code><span class="special">-</span><span class="identifier">Wmaybe</span><span class="special">-</span><span class="identifier">uninitialized</span></code> - warnings - </div> - </li> - <li> - <div> - Fixed <code><span class="identifier">round</span></code> and - <code><span class="identifier">trunc</span></code> functions for - non-representable numbers <a href="https://github.com/boostorg/math/pull/968">968</a>. - </div> - </li> - <li> - <div> - Fixed calculation of mode for F-distribution <a href="https://github.com/boostorg/math/pull/976">976</a>. - </div> - </li> - <li> - <div> - Fixed overflow in beta distribution <a href="https://github.com/boostorg/math/pull/977">977</a>. - </div> - </li> - <li> - <div> - Fixed overflow in hypergeometric distribution <a href="https://github.com/boostorg/math/pull/987">987</a>. - </div> - </li> - <li> - <div> - Fixed calculation of median absolute deviation with non-zero center - <a href="https://github.com/boostorg/math/pull/997">997</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> - <ul> - <li> - <div> - Added an offset/from parameter to <code><span class="identifier">mp_from_sequence</span></code>, - <code><span class="identifier">mp_iota</span></code>, <code><span class="identifier">mp_iota_c</span></code>. - </div> - </li> - <li> - <div> - Added <code><span class="identifier">mp_value</span></code>, - <code><span class="identifier">mp_list_v</span></code>, <code><span class="identifier">mp_rename_v</span></code>, <code><span class="identifier">mp_is_value_list</span></code>. - </div> - </li> - <li> - <div> - Added value list support to the primitives in <code><span class="special">&lt;</span><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mp11</span><span class="special">/</span><span class="identifier">list</span><span class="special">.</span><span class="identifier">hpp</span><span class="special">&gt;</span></code>. - </div> - </li> - <li> - <div> - Added value list support to <code><span class="identifier">mp_repeat</span></code>, - <code><span class="identifier">mp_fill</span></code>, <code><span class="identifier">mp_at</span></code>, <code><span class="identifier">mp_back</span></code>, - <code><span class="identifier">mp_take</span></code>, <code><span class="identifier">mp_pop_back</span></code>, <code><span class="identifier">mp_drop</span></code>, - <code><span class="identifier">mp_insert</span></code>, <code><span class="identifier">mp_erase</span></code>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/multi_index/">Multi-index Containers</a>:</span> - <ul> - <li> - <div> - Updated range <code><span class="identifier">insert</span></code> - in non-unique ordered indices to preserve insertion order of equivalent - elements (issue <a href="https://github.com/boostorg/multi_index/issues/68">#68</a>). - </div> - </li> - <li> - <div> - Serialization now uses <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code> - instead of <code><span class="keyword">unsigned</span> <span class="keyword">long</span></code> to save and load the size of - a <code><span class="identifier">multi_index_container</span></code> - (<code><span class="keyword">unsigned</span> <span class="keyword">long</span></code> - is smaller than <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span></code> - in LLP64 data models). <code><span class="identifier">multi_index_container</span></code> - serialization <a href="https://www.boost.org/libs/serialization/doc/tutorial.html#versioning">class - version</a> has been bumped from 3 to 4 to reflect this change. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/multiprecision/">Multiprecision</a>:</span> - <ul> - <li> - <div> - Fixed bug in rational adapter division <a href="https://github.com/boostorg/multiprecision/pull/542">542</a>. - </div> - </li> - <li> - <div> - Fixed handling of global precsion changes in multi-threaded environments - <a href="https://github.com/boostorg/multiprecision/pull/552">552</a>. - </div> - </li> - <li> - <div> - Fixed <code><span class="identifier">cpp_int</span><span class="special">::</span><span class="identifier">eval_convert_to</span></code> noexcept specification - <a href="https://github.com/boostorg/multiprecision/pull/555">555</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> - <ul> - <li> - <div> - <strong>Major update.</strong> - </div> - </li> - <li> - <div> - Stored procedures are now fully supported, including <code><span class="identifier">SELECT</span></code> statements producing data - and procedures with <code><span class="identifier">OUT</span></code> - parameters. - </div> - </li> - <li> - <div> - Added support for multi-queries, which allows running multiple semicolon-separated - statements with a single call. - </div> - </li> - <li> - <div> - A statically-typed interface has been added, which allows parsing - query results into user-provided types, using <a href="https://www.boost.org/libs/describe/">Boost.Describe</a> - structs and tuples. - </div> - </li> - <li> - <div> - Text queries and prepared statements can now be executed using the - new <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_execution</span></code> - functions (and their async counterparts). These superseed <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">query</span></code>, <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute_statement</span></code>, - <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_query</span></code> and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">start_statement_execution</span></code>. - The new functions allow access to new features, like the static interface. - </div> - </li> - <li> - <div> - A separate compilation mode has been added to help reduce build times. - Sources are included in <code><span class="identifier">boost</span><span class="special">/</span><span class="identifier">mysql</span><span class="special">/</span><span class="identifier">src</span><span class="special">.</span><span class="identifier">hpp</span></code>, - which must be included in exactly one translation unit. - </div> - </li> - <li> - <div> - Prepared statements can now be executed using an iterator pair to - specify parameters, using <code><span class="identifier">statement</span><span class="special">::</span><span class="identifier">bind</span></code> - and <code><span class="identifier">connection</span><span class="special">::</span><span class="identifier">execute</span></code>. This enables use cases - where the number and type of parameters is not known at compile-time. - </div> - </li> - <li> - <div> - Prepared statement execution now accepts parameters of type <code><span class="keyword">bool</span></code>, <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">optional</span></code> - and <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">optional</span></code>. - </div> - </li> - <li> - <div> - Added error codes and verified compatibility with MySQL v8.0.33 and - MariaDB v11.0. - </div> - </li> - <li> - <div> - Fixed potential problems with Windows' <code><span class="identifier">min</span><span class="special">()</span></code> and <code><span class="identifier">max</span><span class="special">()</span></code> macros. - </div> - </li> - <li> - <div> - All assertions now use <a href="https://www.boost.org/libs/assert/">Boost.Assert</a>. - </div> - </li> - <li> - <div> - All exceptions are now thrown via <a href="https://www.boost.org/libs/throw_exception/">Boost.ThrowException</a>. - </div> - </li> - <li> - <div> - Immediate completions are now correctly dispatched through the I/O - object executor. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/ratio/">Ratio</a>:</span> - <ul> - <li> - <div> - Change default <code><span class="identifier">BOOST_RATIO_VERSION</span></code> - to 2. - </div> - </li> - <li> - <div> - Support for <code><span class="identifier">BOOST_RATIO_EXTENSIONS</span></code> - is now deprecated and will eventually be removed when Boost.Ratio - is implemented in terms of the standard <code><span class="special">&lt;</span><span class="identifier">ratio</span><span class="special">&gt;</span></code> - header. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/test/">Test</a>:</span> - <ul> - <li> - <div> - Added addtional older platforms to CI system (e.g. GCC 4.6) - </div> - </li> - <li> - <div> - Fixed handling of <code><span class="identifier">uintptr_t</span></code> - to make sure it is portable on 32-bit systems <a href="https://github.com/boostorg/test/pull/353">353</a>. - </div> - </li> - <li> - <div> - Fixed warnings from <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">dtor</span></code> and <code><span class="special">-</span><span class="identifier">Wdeprecated</span><span class="special">-</span><span class="identifier">copy</span><span class="special">-</span><span class="identifier">with</span><span class="special">-</span><span class="identifier">user</span><span class="special">-</span><span class="identifier">provided</span><span class="special">-</span><span class="identifier">dtor</span></code> <a href="https://github.com/boostorg/test/pull/375">375</a>. - </div> - </li> - <li> - <div> - Fixed handling of <code><span class="identifier">check_is_close</span></code> - for C++23 <code><span class="special">&lt;</span><span class="identifier">stdfloat</span><span class="special">&gt;</span></code> types <a href="https://github.com/boostorg/test/pull/382">382</a>. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/timer/">Timer</a>:</span> - <ul> - <li> - <div> - Remove dependency on Boost.Chrono, Boost.System, and others. - </div> - </li> - <li> - <div> - Disable deprecated headers unless <code><span class="identifier">BOOST_TIMER_ENABLE_DEPRECATED</span></code> - is defined. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> - <ul> - <li> - <div> - <strong>Major update.</strong> - </div> - </li> - <li> - <div> - Added <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">concurrent_flat_map</span></code>, a fast, thread-safe - hashmap based on open addressing. - </div> - </li> - <li> - <div> - Sped up iteration of open-addressing containers. - </div> - </li> - <li> - <div> - In open-addressing containers, <code><span class="identifier">erase</span><span class="special">(</span><span class="identifier">iterator</span><span class="special">)</span></code>, which previously returned nothing, - now returns a proxy object convertible to an iterator to the next - element. This enables the typical <code><span class="identifier">it</span> - <span class="special">=</span> <span class="identifier">c</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">it</span><span class="special">)</span></code> idiom without incurring any performance - penalty when the returned proxy is not used. - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/url/">URL</a>:</span> - <ul> - <li> - <div> - <code><span class="identifier">parse_query</span></code> does - not recreate <code><span class="identifier">string_view</span></code>. - (<a href="https://github.com/boostorg/url/issues/757">#757</a>) - </div> - </li> - <li> - <div> - <code><span class="identifier">url_view</span></code>/<code><span class="identifier">string_view</span></code> constructor requires - non-<code><span class="identifier">url_view_base</span></code>. - (<a href="https://github.com/boostorg/url/issues/756">#756</a>) - </div> - </li> - <li> - <div> - <code><span class="identifier">IP</span><span class="special">-</span><span class="identifier">literal</span></code> can be <code><span class="identifier">IPv6addrz</span></code>. - (<a href="https://github.com/boostorg/url/issues/711">#711</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/uuid/">UUID</a>:</span> - <ul> - <li> - <div> - Improved generated x86 code for AVX targets. Removed the use of - <code><span class="identifier">lddqu</span></code> instruction - on SSE3 targets, which penalize performance on Intel NetBurst CPUs - but is more optimal on Skylake and later CPUs. (<a href="https://github.com/boostorg/uuid/pull/138">PR#138</a>) - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> - <ul> - <li> - <div> - Added <code><span class="identifier">uses_double_storage</span><span class="special">()</span></code>. - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_83_0.updated_tools"> - <h3><span class="link">Updated Tools</span></h3> - <ul> - <li> - <div> - <span class="library"><a href="https://www.boost.org/tools/build/">Build</a>:</span> - <ul> - <li> - <div> - Includes release of <a href="https://www.boost.org/tools/build/doc/html/#_version_4_10_1">B2 - version 4.10.1</a>. - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_83_0.compilers_tested"> - <h3><span class="link">Compilers Tested</span></h3> - <p> - Boost's primary test compilers are: - </p> - <ul> - <li> - <div> - Linux: - <ul> - <li> - <div> - Clang, C++03: 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 12.0.0, 13.0.0, 14.0.0, - 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++14: 3.5, 3.6, 3.7, 3.8, 3.9, 4.0, 5.0, 12.0.0, 13.0.0, - 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++17: 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0, 12.0.0, - 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 - </div> - </li> - <li> - <div> - GCC, C++03: 4.6.3, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++11: 4.7.3, 4.8.5, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 - </div> - </li> - <li> - <div> - GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - OS X: - <ul> - <li> - <div> - Apple Clang, C++03: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++11: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++14: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++17: 11.0.3 - </div> - </li> - <li> - <div> - Apple Clang, C++20: 11.0.3 - </div> - </li> - </ul> - </div> - </li> - <li> - <div> - Windows: - <ul> - <li> - <div> - Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 - </div> - </li> - </ul> - </div> - </li> - </ul> - </div> - <div id="version_1_83_0.acknowledgements"> - <h3><span class="link">Acknowledgements</span></h3> - <p> - Marshall Clow and Glen Fernandes managed this release. - </p> - </div> diff --git a/generated/state/feed-pages.txt b/generated/state/feed-pages.txt index ce311015..d0571b02 100644 --- a/generated/state/feed-pages.txt +++ b/generated/state/feed-pages.txt @@ -2904,7 +2904,7 @@ -id "version_1_88_0 -last_modified -@Sun, 16 Mar 2025 04:24:29 +0000 +@Thu, 10 Apr 2025 20:39:03 +0000 -location "users/history/version_1_88_0.html -notice @@ -2916,13 +2916,13 @@ " New Libraries: Updated Libraries: " -qbk_hash -"3ab7ea5a863d57b3ac46a7551a0e63bbeaf1feefb7f8743f12b09282ea1984cd +"6f45ccbc5a25c4abc3552a212ac2cefe4fa3dba7a7896e7ecceb6ccacfc4a10c -section "history -title "Version 1.88.0 -update_count -=1 +=2 ) (feed/history/unversioned.qbk -guid diff --git a/generated/state/release.txt b/generated/state/release.txt index 4121cfa4..49520999 100644 --- a/generated/state/release.txt +++ b/generated/state/release.txt @@ -3029,6 +3029,38 @@ "release_date": "Sat, 16 Nov 2024 02:07:21 +0000" }, + "boost-1.88.0": { + "documentation": + "\/doc\/libs\/1_88_0\/", + "download_page": + "https:\/\/archives.boost.io\/release\/1.88.0\/source\/", + "downloads.7z.line_endings": + "windows", + "downloads.7z.sha256": + "e84a33716a31c1c8cb00783a411630d41c008e9364002dc0fe55aea4f54f4726", + "downloads.7z.url": + "https:\/\/archives.boost.io\/release\/1.88.0\/source\/boost_1_88_0.7z", + "downloads.bz2.line_endings": + "unix", + "downloads.bz2.sha256": + "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b", + "downloads.bz2.url": + "https:\/\/archives.boost.io\/release\/1.88.0\/source\/boost_1_88_0.tar.bz2", + "downloads.gz.line_endings": + "unix", + "downloads.gz.sha256": + "3621533e820dcab1e8012afd583c0c73cf0f77694952b81352bf38c1488f9cb4", + "downloads.gz.url": + "https:\/\/archives.boost.io\/release\/1.88.0\/source\/boost_1_88_0.tar.gz", + "downloads.zip.line_endings": + "windows", + "downloads.zip.sha256": + "8ee21476f1aca1978339f0f4a218b9b8a6746eec83070f32630f97b09c7e91b7", + "downloads.zip.url": + "https:\/\/archives.boost.io\/release\/1.88.0\/source\/boost_1_88_0.zip", + "release_date": + "Thu, 10 Apr 2025 20:39:01 +0000" + }, "boost-1.88.0 beta1": { "documentation": "\/doc\/libs\/1_88_0_beta1\/", diff --git a/generated/state/rss-items.txt b/generated/state/rss-items.txt index 0ac2a5c5..7bc27909 100644 --- a/generated/state/rss-items.txt +++ b/generated/state/rss-items.txt @@ -71060,7 +71060,7 @@ ) (feed/history/boost_1_88_0.qbk -item -"Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlSun, 16 Mar 2025 04:24:28 +0000 +"Version 1.88.0https://www.boost.org/users/history/version_1_88_0.htmlhttps://www.boost.org/users/history/version_1_88_0.htmlThu, 10 Apr 2025 20:39:01 +0000 " " " <div id="version_1_88_0.new_libraries"> @@ -71068,13 +71068,13 @@ " <ul> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, +" <span class="library"><a href="https://www.boost.org/libs/hash2/">Hash2</a>:</span> An extensible hashing framework, " from Peter Dimov and Christian Mazakas. " </div> " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built +" <span class="library"><a href="https://www.boost.org/libs/mqtt5/">MQTT5</a>:</span> MQTT5 client library built " on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina " Šimičević. " </div> @@ -71086,7 +71086,7 @@ " <ul> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/array/">Array</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/array/">Array</a>:</span> " <ul> " <li> " <div> @@ -71149,7 +71149,89 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/assert/">Assert</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/asio/">Asio</a>:</span> +" <ul> +" <li> +" <div> +" Added <code><span class="keyword">noexcept</span></code> qualifiers +" to various <code><span class="identifier">local</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code> +" member functions, to make it consistent with <code><span class="identifier">ip</span><span class="special">::</span><span class="identifier">basic_endpoint</span></code>. +" </div> +" </li> +" <li> +" <div> +" Fixed the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">config</span></code> class's handling of integer +" values. +" </div> +" </li> +" <li> +" <div> +" Fixed a use-after-move error in <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">ranged_parallel_group</span></code>. +" </div> +" </li> +" <li> +" <div> +" Fixed an incorrect default template argument in the implementation +" of <code><span class="identifier">experimental</span><span class="special">::</span><span class="identifier">promise</span></code>. +" </div> +" </li> +" <li> +" <div> +" Fixed the <code><span class="identifier">io_uring</span></code> +" implementation so that it does not attempt to re-register internal +" descriptors with the reactor after a fork, if they were not previously +" registered. +" </div> +" </li> +" <li> +" <div> +" Fixed an uninitialised member in the <code><span class="identifier">thread_pool</span></code> +" default constructor. +" </div> +" </li> +" <li> +" <div> +" Fixed an ambiguous overload issue that occurred when passing a <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">span</span></code> to the <code><span class="identifier">boost</span><span class="special">::</span><span class="identifier">asio</span><span class="special">::</span><span class="identifier">buffer</span></code> +" function. +" </div> +" </li> +" <li> +" <div> +" Removed some spurious macro definitions that were left after the +" removal of deprecated buffer functionality. +" </div> +" </li> +" <li> +" <div> +" Added documentation to clarify the use of <code><span class="identifier">file_base</span><span class="special">::</span><span class="identifier">flags</span></code> +" when opening a file. +" </div> +" </li> +" <li> +" <div> +" Added overview documentation on the available runtime configuration +" options. +" </div> +" </li> +" <li> +" <div> +" Updated the overview documentation to reflect the use of <code><span class="identifier">deferred</span></code> as the default completion +" token. +" </div> +" </li> +" <li> +" <div> +" Updated the <code><span class="identifier">async_result</span></code> +" documentation to reflect the current type requirements placed on +" specialisations of the trait. +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" <span class="library"><a href="https://www.boost.org/libs/assert/">Assert</a>:</span> " <ul> " <li> " <div> @@ -71164,7 +71246,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/beast/">Beast</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/beast/">Beast</a>:</span> " <ul> " <li> " <div> @@ -71245,7 +71327,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/conversion/">Conversion</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/conversion/">Conversion</a>:</span> " <ul> " <li> " <div> @@ -71257,7 +71339,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/dll/">DLL</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/dll/">DLL</a>:</span> " <ul> " <li> " <div> @@ -71337,7 +71419,174 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/iterator/">Iterator</a>:</span> +" <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/1370">PR#1370</a> Relax half period check in spheroidal normalization +" </div> +" </li> +" <li> +" <div> +" <a href="https://github.com/boostorg/geometry/pull/1368">PR#1368</a> Pass umbrella strategies in rtree spatial +" predicates +" </div> +" </li> +" <li> +" <div> +" <a href="https://github.com/boostorg/geometry/pull/1367">PR#1367</a> Improvements in traversal +" </div> +" </li> +" <li> +" <div> +" <a href="https://github.com/boostorg/geometry/pull/1361">PR#1361</a> Test set operations on random grids with +" integer coordinates +" </div> +" </li> +" <li> +" <div> +" Several test cases has been added +" </div> +" </li> +" <li> +" <div> +" Use using instead of typedef in part of the code +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" Solved issues +" <ul> +" <li> +" <div> +" <a href="https://github.com/boostorg/geometry/pull/1364">PR#1364</a> Fix several strategies (add getters, fix +" compilation error and warning) +" </div> +" </li> +" <li> +" <div> +" <a href="https://github.com/boostorg/geometry/issues/629">#629</a> Avoid warnings for coordinate conversions and +" unused parameters +" </div> +" </li> +" <li> +" <div> +" Various fixes of errors and warnings +" </div> +" </li> +" </ul> +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" <span class="library"><a href="https://www.boost.org/libs/geometry/">Graph</a>:</span> +" <ul> +" <li> +" <div> +" Bug fixes +" <ul> +" <li> +" <div> +" Replace implementation of <code><span class="identifier">maximum_weighted_matching</span></code>, +" resolves multiple issues. +" </div> +" </li> +" <li> +" <div> +" Ensure <code><span class="identifier">named_graph</span></code> +" is initialized before use. +" </div> +" </li> +" <li> +" <div> +" Replace custom geometry code in <code><span class="identifier">is_straight_line_drawing</span></code> +" with Boost.Geometry, fixes incorrect results for very small +" angles. +" </div> +" </li> +" <li> +" <div> +" Fix incorrect callbacks to <code><span class="identifier">finish_edge</span></code> +" in <code><span class="identifier">undirected_dfs</span></code>. +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" Performance improvements +" <ul> +" <li> +" <div> +" <code><span class="identifier">adjacency_list</span></code>: +" Remove unnecessary calls to <code><span class="identifier">resize</span></code>/<code><span class="identifier">reserve</span></code> from within <code><span class="identifier">add_vertex</span></code> for <code><span class="identifier">vector</span></code>-based storage! A quick +" benchmark indicates a 10% improvement to graph construction +" time. +" </div> +" </li> +" <li> +" <div> +" <code><span class="identifier">lengauer_tarjan_dominator_tree</span></code>: +" Replace <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">deque</span></code> +" with <code><span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span></code>, obtaining a ~40% +" improvement for large graphs. +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" General Improvements +" <ul> +" <li> +" <div> +" Replace the use of several Boost utilities with C++14 language +" features. +" </div> +" </li> +" <li> +" <div> +" Modernize examples with C++14 language features. +" </div> +" </li> +" <li> +" <div> +" Various fixes to documentation and build system. +" </div> +" </li> +" <li> +" <div> +" <code><span class="identifier">vertex_by_property</span></code> +" no longer requires a mutable graph. +" </div> +" </li> +" <li> +" <div> +" Fix compilation issue with <code><span class="identifier">cycle_canceling</span></code> +" and Clang 19. +" </div> +" </li> +" </ul> +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" <span class="library"><a href="https://www.boost.org/libs/iterator/">Iterator</a>:</span> " <ul> " <li> " <div> @@ -71423,7 +71672,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/locale/">Locale</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/locale/">Locale</a>:</span> " <ul> " <li> " <div> @@ -71458,7 +71707,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/lockfree/">Lockfree</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/lockfree/">Lockfree</a>:</span> " <ul> " <li> " <div> @@ -71471,7 +71720,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/log/">Log</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/log/">Log</a>:</span> " <ul> " <li> " <div> @@ -71487,12 +71736,21 @@ " Fixed building issues when using CMake and MinGW-w64. (<a href="https://github.com/boostorg/log/pull/241">PR#241</a>) " </div> " </li> +" <li> +" <div> +" Fixed incorrect file counter used by <code><span class="identifier">text_file_backend</span></code> +" when the backend was configured to append to an existing file and +" the actively written file name pattern didn't have a counter placeholder +" but the target file name pattern did, and the log files were written +" directly into the target storage. (<a href="https://github.com/boostorg/log/issues/245">#245</a>) +" </div> +" </li> " </ul> " </div> " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mp11/">Mp11</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/mp11/">Mp11</a>:</span> " <ul> " <li> " <div> @@ -71506,7 +71764,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/mysql/">MySQL</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/mysql/">MySQL</a>:</span> " <ul> " <li> " <div> @@ -71589,7 +71847,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/nowide/">Nowide</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/nowide/">Nowide</a>:</span> " <ul> " <li> " <div> @@ -71602,7 +71860,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/poly_collection/">PolyCollection</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/poly_collection/">PolyCollection</a>:</span> " <ul> " <li> " <div> @@ -71615,7 +71873,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/smart_ptr/">SmartPtr</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/smart_ptr/">SmartPtr</a>:</span> " <ul> " <li> " <div> @@ -71628,7 +71886,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/stacktrace/">Stacktrace</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/stacktrace/">Stacktrace</a>:</span> " <ul> " <li> " <div> @@ -71667,7 +71925,20 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/unordered/">Unordered</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/type_index/">TypeIndex</a>:</span> +" <ul> +" <li> +" <div> +" Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented +" the library from building on clang-20. +" </div> +" </li> +" </ul> +" </div> +" </li> +" <li> +" <div> +" <span class="library"><a href="https://www.boost.org/libs/unordered/">Unordered</a>:</span> " <ul> " <li> " <div> @@ -71679,7 +71950,7 @@ " </li> " <li> " <div> -" <span class="library"><a href="https://www.boost.org/doc/libs/1_88_0_beta1/libs/variant2/">Variant2</a>:</span> +" <span class="library"><a href="https://www.boost.org/libs/variant2/">Variant2</a>:</span> " <ul> " <li> " <div> @@ -71699,17 +71970,106 @@ " <ul> " <li> " <div> -" <em>TODO</em> +" 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> -" </ul> -" <p> -" Boost's additional test compilers include: -" </p> -" <ul> " <li> " <div> -" <em>TODO</em> +" 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> @@ -71722,11 +72082,11 @@ " </div> " -last_modified -@Sun, 16 Mar 2025 04:24:29 +0000 +@Thu, 10 Apr 2025 20:39:03 +0000 -quickbook "feed/history/boost_1_88_0.qbk -update_count -=1 +=2 ) (feed/history/unversioned.qbk -item diff --git a/users/history/in_progress.html b/users/history/in_progress.html index af7f5ed2..248d222e 100644 --- a/users/history/in_progress.html +++ b/users/history/in_progress.html @@ -30,1034 +30,6 @@ subject to change.

-

Version 1.88.0

- -

In Progress

- -
-
- - -
-

New Libraries

-
    -
  • -
    - Hash2: An extensible hashing framework, - from Peter Dimov and Christian Mazakas. -
    -
  • -
  • -
    - MQTT5: MQTT5 client library built - on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina - Šimičević. -
    -
  • -
-
-
-

Updated Libraries

-
    -
  • -
    - Array: -
      -
    • -
      - Converted documentation to AsciiDoc (Christian Mazakas). -
      -
    • -
    • -
      - Added noexcept and - constexpr as appropriate. -
      -
    • -
    • -
      - Marked obsolete functions as deprecated. -
      -
    • -
    • -
      - Removed obsolete compiler workarounds. -
      -
    • -
    • -
      - Changed array<T, 0>::begin(), - cbegin(), - end(), - cend() - to return nullptr, enabling - constexpr. This matches - the behavior of std::array. -
      -
    • -
    • -
      - Removed local hash_value - overload; boost::hash supports array-like types - natively. -
      -
    • -
    • -
      - array<T, 0> - can now be initialized with = - {{}}. -
      -
    • -
    • -
      - Added operator<=>. -
      -
    • -
    • -
      - Added to_array. -
      -
    • -
    -
    -
  • -
  • -
    - Asio: -
      -
    • -
      - Added noexcept qualifiers - to various local::basic_endpoint - member functions, to make it consistent with ip::basic_endpoint. -
      -
    • -
    • -
      - Fixed the boost::asio::config class's handling of integer - values. -
      -
    • -
    • -
      - Fixed a use-after-move error in experimental::ranged_parallel_group. -
      -
    • -
    • -
      - Fixed an incorrect default template argument in the implementation - of experimental::promise. -
      -
    • -
    • -
      - Fixed the io_uring - implementation so that it does not attempt to re-register internal - descriptors with the reactor after a fork, if they were not previously - registered. -
      -
    • -
    • -
      - Fixed an uninitialised member in the thread_pool - default constructor. -
      -
    • -
    • -
      - Fixed an ambiguous overload issue that occurred when passing a std::span to the boost::asio::buffer - function. -
      -
    • -
    • -
      - Removed some spurious macro definitions that were left after the - removal of deprecated buffer functionality. -
      -
    • -
    • -
      - Added documentation to clarify the use of file_base::flags - when opening a file. -
      -
    • -
    • -
      - Added overview documentation on the available runtime configuration - options. -
      -
    • -
    • -
      - Updated the overview documentation to reflect the use of deferred as the default completion - token. -
      -
    • -
    • -
      - Updated the async_result - documentation to reflect the current type requirements placed on - specialisations of the trait. -
      -
    • -
    -
    -
  • -
  • -
    - Assert: -
      -
    • -
      - When BOOST_ASSERT_HANDLER_IS_NORETURN - is defined, boost::assertion_failed - and boost::assertion_failed_msg are declared - as BOOST_NORETURN. -
      -
    • -
    -
    -
  • -
  • -
    - Beast: -
      -
    • -
      - Fixes -
        -
      • -
        - Fixed out-of-bounds access in iequals - function. -
        -
      • -
      -
      -
    • -
    • -
      - Improvements -
        -
      • -
        - Updated SSL examples to verify peer certificate hostname. -
        -
      • -
      • -
        - Refactored CMakeLists. -
        -
      • -
      • -
        - Removed Boost.Scope dependency from examples. -
        -
      • -
      • -
        - Peer pings in WebSocket now count as activity. -
        -
      • -
      -
      -
    • -
    • -
      - Documentation -
        -
      • -
        - Added new examples for Unix domain sockets. -
        -
      • -
      • -
        - Added SSL/TLS Certificate section to documentation. -
        -
      • -
      • -
        - Improved documentation of websocket::stream::async_close. -
        -
      • -
      -
      -
    • -
    • -
      - Acknowledgements -
        -
      • -
        - Morten M. Neergaard -
        -
      • -
      -
      -
    • -
    -
    -
  • -
  • -
    - Conversion: -
      -
    • -
      - Use modern C++ in the samples and in the library code. -
      -
    • -
    -
    -
  • -
  • -
    - DLL: -
      -
    • -
      - Added constructor from native_handle_t - to the boost::dll::shared_library. Many thanks to - Tiago Matos for the - PR#82. -
      -
    • -
    • -
      - Dropped multiple dependencies on other Boost libraries including - Spirit, SmartPtr, Move, TypeTraits, and Function. DLL became more - lightweight for compilation. -
      -
    • -
    • -
      - std::error_code& - in API is used instead of the boost::system::error_code&. This is not a breaking change - as boost::system::error_code is convertible to std::error_code&. -
      -
    • -
    • -
      - boost::dll:import_* - functions now return std::shared_ptr - rather than boost::shared_ptr. - Define BOOST_DLL_USE_BOOST_SHARED_PTR - to restore the old behavior, however note that the macro will be - removed in one of the upcomming Boost releases. -
      -
    • -
    • -
      - Use modern C++ in the samples and in the library code. -
      -
    • -
    • -
      - boost::dll::library_info now always throws - in case of a broken binary. Updated the docs and added some tests. -
      -
    • -
    • -
      - Documented in FAQ why RTLD_NODELETE - is missing and why there is no .release() - method. Provided suggestions on possible workarounds. -
      -
    • -
    • -
      - Updated the information on building and using the library. CMake - targets now link with -ldl if it is required by the platform. -
      -
    • -
    • -
      - Fixed detail::path_from_handle implementation - for long paths on Windows OS. -
      -
    • -
    • -
      - Highlighted in the docs that boost/dll/smart_* parts of the library are experimental - and incomplete. -
      -
    • -
    • -
      - Fixed multiple mangling issues in boost/dll/smart_* parts of the library. -
      -
    • -
    -
    -
  • -
  • -
    - Geometry: -
      -
    • -
      - Improvements -
        -
      • -
        - PR#1370 Relax half period check in spheroidal normalization -
        -
      • -
      • -
        - PR#1368 Pass umbrella strategies in rtree spatial - predicates -
        -
      • -
      • -
        - PR#1367 Improvements in traversal -
        -
      • -
      • -
        - PR#1361 Test set operations on random grids with - integer coordinates -
        -
      • -
      • -
        - Several test cases has been added -
        -
      • -
      • -
        - Use using instead of typedef in part of the code -
        -
      • -
      -
      -
    • -
    • -
      - Solved issues -
        -
      • -
        - PR#1364 Fix several strategies (add getters, fix - compilation error and warning) -
        -
      • -
      • -
        - #629 Avoid warnings for coordinate conversions and - unused parameters -
        -
      • -
      • -
        - Various fixes of errors and warnings -
        -
      • -
      -
      -
    • -
    -
    -
  • -
  • -
    - Graph: -
      -
    • -
      - Bug fixes -
        -
      • -
        - Replace implementation of maximum_weighted_matching, - resolves multiple issues. -
        -
      • -
      • -
        - Ensure named_graph - is initialized before use. -
        -
      • -
      • -
        - Replace custom geometry code in is_straight_line_drawing - with Boost.Geometry, fixes incorrect results for very small - angles. -
        -
      • -
      • -
        - Fix incorrect callbacks to finish_edge - in undirected_dfs. -
        -
      • -
      -
      -
    • -
    • -
      - Performance improvements -
        -
      • -
        - adjacency_list: - Remove unnecessary calls to resize/reserve from within add_vertex for vector-based storage! A quick - benchmark indicates a 10% improvement to graph construction - time. -
        -
      • -
      • -
        - lengauer_tarjan_dominator_tree: - Replace std::deque - with std::vector, obtaining a ~40% - improvement for large graphs. -
        -
      • -
      -
      -
    • -
    • -
      - General Improvements -
        -
      • -
        - Replace the use of several Boost utilities with C++14 language - features. -
        -
      • -
      • -
        - Modernize examples with C++14 language features. -
        -
      • -
      • -
        - Various fixes to documentation and build system. -
        -
      • -
      • -
        - vertex_by_property - no longer requires a mutable graph. -
        -
      • -
      • -
        - Fix compilation issue with cycle_canceling - and Clang 19. -
        -
      • -
      -
      -
    • -
    -
    -
  • -
  • -
    - Iterator: -
      -
    • -
      - Dropped support for C++03 and ancient compilers, updated code base - to use C++11 and MP11, reduced usage of MPL. (PR#82) -
      -
    • -
    • -
      - Added min_category - trait, which is a variadic equivalent of minimum_category - that doesn't depend on MPL. minimum_category - is deprecated and will be removed in a future release. -
      -
    • -
    • -
      - Extracted enable_if_convertible - trait to a separate header enable_if_convertible.hpp. - The trait was previously defined in iterator_adaptor.hpp, - and the header still provides enable_if_convertible - when included. This dependency is provided for backward compatibility - and will be removed in a future release. Users are advised to add - includes of enable_if_convertible.hpp, - as needed. -
      -
    • -
    • -
      - Added *_t - variants of various iterator traits that produce types. -
      -
    • -
    • -
      - filter_iterator and - transform_iterator - now use empty base optimization (EBO) to reduce size of the iterator - when the adopted function object is stateless. -
      -
    • -
    • -
      - zip_iterator now - natively supports boost::tuple, - std::tuple and std::pair - for iterator tuples and doesn't need including Fusion support headers. -
      -
    • -
    • -
      - function_output_iterator - no longer allows default construction when the wrapped function is - a function pointer. Such construction would previously create an - iterator with an uninitialized function pointer value, and such an - iterator would be unusable. -
      -
    • -
    • -
      - generator_iterator.hpp - and shared_container_iterator.hpp - headers were moved under the boost/iterator - directory. The previous headers in boost - are still retained for backward compatibility, but will be removed - in a future release. Users are advised to update their includes. -
      -
    • -
    • -
      - shared_container_iterator - now uses std::shared_ptr to reference the container - internally. The support for boost::shared_ptr - is still retained, but it will incur performance overhead on the - iterator construction, as boost::shared_ptr - is now wrapped in a std::shared_ptr - internally. It is recommended to use std::shared_ptr - to reference the container. -
      -
    • -
    -
    -
  • -
  • -
    - Locale: -
      -
    • -
      - Raised required ICU version to at least 4.8.1 -
      -
    • -
    • -
      - Dropped support for ICU 50.1 -
      -
    • -
    • -
      - Fixed parsing of integers with input strings in floating point format - (PR#241) -
      -
    • -
    • -
      - Support parsing and formatting of uint64_t - values with the ICU backend (PR#246) -
      -
    • -
    • -
      - Support char8_t on - more platforms -
      -
    • -
    -
    -
  • -
  • -
    - Lockfree: -
      -
    • -
      - Added new spsc_value, a lockfree single-producer single-consumer - value based on a triple-buffer -
      -
    • -
    -
    -
  • -
  • -
    - Log: -
      -
    • -
      - Disabled usage of std::codecvt<char16_t> and std::codecvt<char32_t> locale facets in C++20 and later - modes as they were deprecated in C++20. This means character code - conversions to/from char16_t - and char32_t is no longer - available in C++20 and later. -
      -
    • -
    • -
      - Fixed building issues when using CMake and MinGW-w64. (PR#241) -
      -
    • -
    • -
      - Fixed incorrect file counter used by text_file_backend - when the backend was configured to append to an existing file and - the actively written file name pattern didn't have a counter placeholder - but the target file name pattern did, and the log files were written - directly into the target storage. (#245) -
      -
    • -
    -
    -
  • -
  • -
    - Mp11: -
      -
    • -
      - Fixed mp_from_sequence - for non-integral values (accidentally broken in 1.83.0 due to offset - support) -
      -
    • -
    -
    -
  • -
  • -
    - MySQL: -
      -
    • -
      - connection_pool now - resizes correctly even in the presence of many connections with session - establishment in-progress. The old algorithm could lead to the pool - not being resized as expected under certain conditions (#395). -
      -
    • -
    • -
      - Added any_connection::connection_id. - This function retrieves the connection's ID, which can subsequently - be used in KILL SQL - statements to cancel queries. This function is equivalent to mysql_thread_id in the official - C API (#408) -
      -
    • -
    • -
      - Attempting to start an async operation on a connection - or any_connection - while another operation is in-progress no longer triggers undefined - behavior. It now fails with client_errc::operation_in_progress - (#405). -
      -
    • -
    • -
      - Attempting to start an operation while a connection - or any_connection - are engaged in a multi-function operation no longer yields potentially - dangerous packet mismatches. It instead fails with client_errc::engaged_in_multi_function (#448). -
      -
    • -
    • -
      - Improved diagnostics when attempting to use a connection without - a established session. Operations now fail with client_errc::not_connected - (#450). -
      -
    • -
    • -
      - Fixed a race condition in connection - and any_connection - regarding per-operation cancellation. In previous versions, if a - cancellation signal was emitted after an intermediate async operation - had completed, but before its handler had been called, the signal - was ignored. This is no longer the case (#199). -
      -
    • -
    • -
      - field's constructor - and assignment from std::string_view - are now available in C++17, rather than C++20. These functions were - guarded by standard feature-test macros, only available in C++20. - These have been replaced by their Boost.Config equivalents. -
      -
    • -
    • -
      - Added an HTTP server example that uses C++20 coroutines. -
      -
    • -
    • -
      - Added a doc page on interfacing sync and async code. This replaces - the synchronous connection pool snippet, which contained a race condition. -
      -
    • -
    • -
      - Improved some of the other examples and doc pages. -
      -
    • -
    -
    -
  • -
  • -
    - Nowide: -
      -
    • -
      - Make getenv thread-safe - (PR#191) -
      -
    • -
    -
    -
  • -
  • -
    - PolyCollection: -
      -
    • -
      - Added boost::variant_collection, a closed polymorphic - collection similar in behavior to std::vector<std::variant<...>>. -
      -
    • -
    -
    -
  • -
  • -
    - SmartPtr: -
      -
    • -
      - Fix operator<< - for wide streams (accidentally broken in 1.87.0) -
      -
    • -
    -
    -
  • -
  • -
    - Stacktrace: -
      -
    • -
      - Use GetModuleNames - to determine the full module path for MSVC implementation. Many thanks - to Daniel Krügler - for the PR#198. -
      -
    • -
    • -
      - Print relative addresses to allow their decoding later without knowing - the base address. The logic could be disabled by defining BOOST_STACKTRACE_DISABLE_OFFSET_ADDR_BASE. - Many thanks to Maciej Czarnecki - for the PR#200. -
      -
    • -
    • -
      - Expose all the stacktrace libraries as b2 features for better control - over the build and explicit information on what libraries are built. - See "Configuration and Build" section for more info. Many - thanks to Uilian Ries - for initial implementation of the feature in PR#202. -
      -
    • -
    • -
      - Fixed stacktrace_from_exception - builds with MinGW. Thanks to crhilton - for the fix. -
      -
    • -
    -
    -
  • -
  • -
    - TypeIndex: -
      -
    • -
      - Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented - the library from building on clang-20. -
      -
    • -
    -
    -
  • -
  • -
    - Unordered: -
      -
    • -
      - Migrated the documentation to a multipage format using Antora. -
      -
    • -
    -
    -
  • -
  • -
    - Variant2: -
      -
    • -
      - Use the smallest appropriate unsigned type for the index. -
      -
    • -
    -
    -
  • -
-
-
-

Compilers Tested

-

- Boost's primary test compilers are: -

-
    -
  • -
    - Linux: -
      -
    • -
      - 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 -
      -
    • -
    • -
      - Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 -
      -
    • -
    • -
      - 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 -
      -
    • -
    • -
      - 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 -
      -
    • -
    • -
      - Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 -
      -
    • -
    • -
      - GCC, C++03: 4.6.3, 11, 12 -
      -
    • -
    • -
      - GCC, C++11: 4.7.3, 4.8.5, 11, 12 -
      -
    • -
    • -
      - GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 -
      -
    • -
    • -
      - GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 -
      -
    • -
    • -
      - GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 -
      -
    • -
    -
    -
  • -
  • -
    - OS X: -
      -
    • -
      - Apple Clang, C++03: 11.0.3 -
      -
    • -
    • -
      - Apple Clang, C++11: 11.0.3 -
      -
    • -
    • -
      - Apple Clang, C++14: 11.0.3 -
      -
    • -
    • -
      - Apple Clang, C++17: 11.0.3 -
      -
    • -
    • -
      - Apple Clang, C++20: 11.0.3 -
      -
    • -
    -
    -
  • -
  • -
    - Windows: -
      -
    • -
      - Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 -
      -
    • -
    -
    -
  • -
-
-
-

Acknowledgements

-

- Marshall Clow, Glen Fernandes and Ion Gaztañaga managed this release. -

-
-
-
diff --git a/users/history/version_1_88_0.html b/users/history/version_1_88_0.html index 096ed507..00855ff2 100644 --- a/users/history/version_1_88_0.html +++ b/users/history/version_1_88_0.html @@ -3,7 +3,7 @@ - Version 1.88.0 beta 1 + Version 1.88.0 @@ -37,13 +37,13 @@

Version 1.88.0 beta 1

+ "news-title">Version 1.88.0 -

March 16th, 2025 04:24 GMT

-

Documentation - - -
Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_88_0_b1.tar.bz29e42c0611500151d795d66a07ef0a21036c02d24678e2e887caf6d97fcbc25ca
boost_1_88_0_b1.tar.gz3c334a9a743b68a35452b0223be8932fb39f26a6938382f9b9e625c4df99602c
windowsboost_1_88_0_b1.7z7faf60c4cb12ee90270e41716cf3735a8739016d7346983ce9f5e899e510b26d
boost_1_88_0_b1.zipbc4948bc664fde0c2142badae2679a42124b464dc58019250afe0ef57fd7763e
* The download links are supported by grants from The C++ Alliance.

+

April 10th, 2025 20:39 GMT

+

Documentation + + +
Downloads
PlatformFileSHA256 Hash
unixboost_1_88_0.tar.bz246d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b
boost_1_88_0.tar.gz3621533e820dcab1e8012afd583c0c73cf0f77694952b81352bf38c1488f9cb4
windowsboost_1_88_0.7ze84a33716a31c1c8cb00783a411630d41c008e9364002dc0fe55aea4f54f4726
boost_1_88_0.zip8ee21476f1aca1978339f0f4a218b9b8a6746eec83070f32630f97b09c7e91b7
* The download links are supported by grants from The C++ Alliance.

@@ -53,13 +53,13 @@
  • - Hash2: An extensible hashing framework, + Hash2: An extensible hashing framework, from Peter Dimov and Christian Mazakas.
  • - MQTT5: MQTT5 client library built + MQTT5: MQTT5 client library built on top of Boost.Asio, from Ivica Siladić, Bruno Iljazović, and Korina Šimičević.
    @@ -71,7 +71,7 @@
    • - Array: + Array:
      • @@ -134,7 +134,89 @@
      • - Assert: + Asio: +
          +
        • +
          + Added noexcept qualifiers + to various local::basic_endpoint + member functions, to make it consistent with ip::basic_endpoint. +
          +
        • +
        • +
          + Fixed the boost::asio::config class's handling of integer + values. +
          +
        • +
        • +
          + Fixed a use-after-move error in experimental::ranged_parallel_group. +
          +
        • +
        • +
          + Fixed an incorrect default template argument in the implementation + of experimental::promise. +
          +
        • +
        • +
          + Fixed the io_uring + implementation so that it does not attempt to re-register internal + descriptors with the reactor after a fork, if they were not previously + registered. +
          +
        • +
        • +
          + Fixed an uninitialised member in the thread_pool + default constructor. +
          +
        • +
        • +
          + Fixed an ambiguous overload issue that occurred when passing a std::span to the boost::asio::buffer + function. +
          +
        • +
        • +
          + Removed some spurious macro definitions that were left after the + removal of deprecated buffer functionality. +
          +
        • +
        • +
          + Added documentation to clarify the use of file_base::flags + when opening a file. +
          +
        • +
        • +
          + Added overview documentation on the available runtime configuration + options. +
          +
        • +
        • +
          + Updated the overview documentation to reflect the use of deferred as the default completion + token. +
          +
        • +
        • +
          + Updated the async_result + documentation to reflect the current type requirements placed on + specialisations of the trait. +
          +
        • +
        +
        +
      • +
      • +
        + Assert:
        • @@ -149,7 +231,7 @@
        • - Beast: + Beast:
          • @@ -230,7 +312,7 @@
          • - Conversion: + Conversion:
            • @@ -242,7 +324,7 @@
            • - DLL: + DLL:
              • @@ -322,7 +404,174 @@
              • - Iterator: + Geometry: +
                  +
                • +
                  + Improvements +
                    +
                  • +
                    + PR#1370 Relax half period check in spheroidal normalization +
                    +
                  • +
                  • +
                    + PR#1368 Pass umbrella strategies in rtree spatial + predicates +
                    +
                  • +
                  • +
                    + PR#1367 Improvements in traversal +
                    +
                  • +
                  • +
                    + PR#1361 Test set operations on random grids with + integer coordinates +
                    +
                  • +
                  • +
                    + Several test cases has been added +
                    +
                  • +
                  • +
                    + Use using instead of typedef in part of the code +
                    +
                  • +
                  +
                  +
                • +
                • +
                  + Solved issues +
                    +
                  • +
                    + PR#1364 Fix several strategies (add getters, fix + compilation error and warning) +
                    +
                  • +
                  • +
                    + #629 Avoid warnings for coordinate conversions and + unused parameters +
                    +
                  • +
                  • +
                    + Various fixes of errors and warnings +
                    +
                  • +
                  +
                  +
                • +
                +
                +
              • +
              • +
                + Graph: +
                  +
                • +
                  + Bug fixes +
                    +
                  • +
                    + Replace implementation of maximum_weighted_matching, + resolves multiple issues. +
                    +
                  • +
                  • +
                    + Ensure named_graph + is initialized before use. +
                    +
                  • +
                  • +
                    + Replace custom geometry code in is_straight_line_drawing + with Boost.Geometry, fixes incorrect results for very small + angles. +
                    +
                  • +
                  • +
                    + Fix incorrect callbacks to finish_edge + in undirected_dfs. +
                    +
                  • +
                  +
                  +
                • +
                • +
                  + Performance improvements +
                    +
                  • +
                    + adjacency_list: + Remove unnecessary calls to resize/reserve from within add_vertex for vector-based storage! A quick + benchmark indicates a 10% improvement to graph construction + time. +
                    +
                  • +
                  • +
                    + lengauer_tarjan_dominator_tree: + Replace std::deque + with std::vector, obtaining a ~40% + improvement for large graphs. +
                    +
                  • +
                  +
                  +
                • +
                • +
                  + General Improvements +
                    +
                  • +
                    + Replace the use of several Boost utilities with C++14 language + features. +
                    +
                  • +
                  • +
                    + Modernize examples with C++14 language features. +
                    +
                  • +
                  • +
                    + Various fixes to documentation and build system. +
                    +
                  • +
                  • +
                    + vertex_by_property + no longer requires a mutable graph. +
                    +
                  • +
                  • +
                    + Fix compilation issue with cycle_canceling + and Clang 19. +
                    +
                  • +
                  +
                  +
                • +
                +
                +
              • +
              • +
                + Iterator:
                • @@ -408,7 +657,7 @@
                • - Locale: + Locale:
                  • @@ -443,7 +692,7 @@
                  • - Lockfree: + Lockfree:
                    • @@ -456,7 +705,7 @@
                    • - Log: + Log:
                      • @@ -472,12 +721,21 @@ Fixed building issues when using CMake and MinGW-w64. (PR#241)
                      • +
                      • +
                        + Fixed incorrect file counter used by text_file_backend + when the backend was configured to append to an existing file and + the actively written file name pattern didn't have a counter placeholder + but the target file name pattern did, and the log files were written + directly into the target storage. (#245) +
                        +
                    • - Mp11: + Mp11:
                      • @@ -491,7 +749,7 @@
                      • - MySQL: + MySQL:
                        • @@ -574,7 +832,7 @@
                        • - Nowide: + Nowide:
                          • @@ -587,7 +845,7 @@
                          • - PolyCollection: + PolyCollection:
                            • @@ -600,7 +858,7 @@
                            • - SmartPtr: + SmartPtr:
                              • @@ -613,7 +871,7 @@
                              • - Stacktrace: + Stacktrace:
                                • @@ -652,7 +910,20 @@
                                • - Unordered: + TypeIndex: +
                                    +
                                  • +
                                    + Fixed an UB that was introduced in Boost.TypeIndex 1.84 and prevented + the library from building on clang-20. +
                                    +
                                  • +
                                  +
                                  +
                                • +
                                • +
                                  + Unordered:
                                  • @@ -664,7 +935,7 @@
                                  • - Variant2: + Variant2:
                                    • @@ -684,17 +955,106 @@
                                      • - TODO + Linux: +
                                          +
                                        • +
                                          + 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 +
                                          +
                                        • +
                                        • +
                                          + Clang, C++11: 3.4, 11.0.0, 13.0.0, 14.0.0, 15.0.0 +
                                          +
                                        • +
                                        • +
                                          + 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 +
                                          +
                                        • +
                                        • +
                                          + 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 +
                                          +
                                        • +
                                        • +
                                          + Clang, C++20: 11.0.0, 12.0.0, 13.0.0, 14.0.0, 15.0.0 +
                                          +
                                        • +
                                        • +
                                          + GCC, C++03: 4.6.3, 11, 12 +
                                          +
                                        • +
                                        • +
                                          + GCC, C++11: 4.7.3, 4.8.5, 11, 12 +
                                          +
                                        • +
                                        • +
                                          + GCC, C++14: 5.4.0, 6.4.0, 7.3.0, 8.0.1, 9.1.0, 11, 12 +
                                          +
                                        • +
                                        • +
                                          + GCC, C++17: 7.3.0, 8.0.1, 9.1.0, 11, 12 +
                                          +
                                        • +
                                        • +
                                          + GCC, C++20: 8.0.1, 9.1.0, 10, 11, 12 +
                                          +
                                        • +
                                      • -
                                      -

                                      - Boost's additional test compilers include: -

                                      -
                                      • - TODO + OS X: +
                                          +
                                        • +
                                          + Apple Clang, C++03: 11.0.3 +
                                          +
                                        • +
                                        • +
                                          + Apple Clang, C++11: 11.0.3 +
                                          +
                                        • +
                                        • +
                                          + Apple Clang, C++14: 11.0.3 +
                                          +
                                        • +
                                        • +
                                          + Apple Clang, C++17: 11.0.3 +
                                          +
                                        • +
                                        • +
                                          + Apple Clang, C++20: 11.0.3 +
                                          +
                                        • +
                                        +
                                        +
                                      • +
                                      • +
                                        + Windows: +
                                          +
                                        • +
                                          + Visual C++: 10.0, 11.0, 12.0, 14.0, 14.1, 14.2, 14.3 +
                                          +
                                        • +