[article Version 1.64.0 [quickbook 1.6] [source-mode c++] [purpose Updated Libraries: [/ Please don't add updated libraries yet, it can create unnecessary merge conflicts.] ] [authors [Dawes, Beman]] [/ last-revision is used for the final release date] [last-revision ] ] [import ext.qbk] [section Updated Libraries] * [phrase library..[@/libs/any/ Any]:] * Suppressed false warnings about returning reference to temporary * `boost::addressof` is now used instead of directly taking the address [ticket 12615] * Headers are not included using double quotes any more [ticket 12053] * CI tests now run with `address`, `leak`, and `undefined` sanitizers * Added more test * [phrase library..[@/libs/atomic/ Atomic]:] * Fixed possible incorrect code generation in 64-bit atomic operations on 32-bit x86 with gcc versions older than 4.7 and compatible compilers. * [phrase library..[@/libs/context/ Context]:] * new API: call/cc * deprecated API:execution-context * [ticket 12719] segmentation fault when built with mingw-w64 * #38: context_entry() crashes on macOS * #39: Unknown directive .cpu on aarch64 with Clang 3.8 on Android * [phrase library..[@/libs/conversion/ Conversion]:] * Docs were ported to Quickbook (thanks to Mikhail Maksimov for the port) * Fixed a memory leak in test (thanks to Mikhail Maksimov for the fix) * CI tests now run with `address`, `leak`, and `undefined` sanitizers * [phrase library..[@/libs/core/ Core]:] * Implemented `constexpr` `addressof` on compilers that support C++11 `constexpr` and SFINAE expressions. `BOOST_CORE_NO_CONSTEXPR_ADDRESSOF` macro indicates when `constexpr` `addressof` is not available. * In `lightweight_test.hpp`, added new macros `BOOST_TEST_ALL_EQ` and `BOOST_TEST_ALL_WITH` for testing container contents. * [phrase library..[@/libs/coroutine2/ Coroutine2]:] * #4: coroutine2<> does not accept std::bind * [phrase library..[@/libs/dll/ DLL]:] * Fixed WinCE compilation * Added `boost:dll::symbol_location_ptr` function for getting location of a symbol by pointer that could not be dereferenced (`void` pointer for example) * Fixed UB in `detail::aggressive_ptr_cast` for member pointers * Fixed leaks in experimental smart imports * Fixed warnings * CI tests now run with `address` and `leak` sanitizers * [phrase library..[@/libs/fiber/ Fiber]:] * #100: ASIO: unbuffered_channel / scheduler notify issue * #106: Passing a fixed_stack allocator to async/packaged_task doesn't compile * #111: endless-loop in buffered_channel::try_value_pop() * (un)bounded_channel<> removed * [phrase library..[@/libs/lexical_cast/ LexicalCast]:] * Fixed multiple warnings [ticket 11842] * CI tests now run with `address`, `leak`, and `undefined` sanitizers * [phrase library..[@/libs/math/ Math]:] * Big push to ensure all functions in also in C99 are compatible with Annex F. * Improved accuracy of the Bessel functions I0, I1, K0 and K1, see [@https://svn.boost.org/trac/boost/ticket/12066 12066]. * [phrase library..[@/libs/multiprecision/ Multiprecision]:] * In `cpp_bin_float` prevent double rounding when converting to a denormalized float. See [@https://svn.boost.org/trac/boost/ticket/12527 #12527]. * Fix bug in integer sqrt for very small integers. See [@https://svn.boost.org/trac/boost/ticket/12559 #12559]. * Fix conversion to signed-zero in `cpp_bin_float`. * Change `cpp_bin_float` rounding code to round at arbitrary location so we can use it for conversions, see [@https://svn.boost.org/trac/boost/ticket/12527 #12527]. * Improve performance of 128-bit bit-scan operations. * Fix subtraction of very small quantities in `cpp_bin_float`. See: [@https://svn.boost.org/trac/boost/ticket/12580 #12580]. * Bring error handling into line with C99 Annex F. See [@https://svn.boost.org/trac/boost/ticket/12581 #12581]. * Fix bitwise export of trivial `cpp_int`'s, see [@https://svn.boost.org/trac/boost/ticket/12627 #12627]. * Fix `ilogb` (and code that uses it) to consistently return the smallest value of the exponent type when the argument is zero, see [@https://svn.boost.org/trac/boost/ticket/12625 #12625]. * Allow conversion from `__float128` to `cpp_bin_float`. * Fix bug in left shift of `cpp_int` which would result in bit-loss, see [@https://svn.boost.org/trac/boost/ticket/12790 #12790]. * Fixed bugs in bounded but variable precision `cpp_int`'s caused by over-aggressive constexpr optimization, see [@https://svn.boost.org/trac/boost/ticket/12798 #12798]. * [phrase library..[@/libs/program_options/ Program Options]:] * Support for storing values into `boost::optional`, thanks to Ed Catmur ([@https://svn.boost.org/trac/boost/ticket/7495 #7495], [@https://github.com/boostorg/program_options/pull/18 PR#18]) * [phrase library..[@/libs/regex/ Regex]:] * Compiling with Oracle C++ toolset is no longer restricted to static linking. * Big effort to de-fuzz the library using libFuzzer and fix identified issues, see: [@https://svn.boost.org/trac/boost/ticket/12818 #12818]. * [phrase library..[@/libs/smart_ptr/ Smart Pointers]:] * Rewrite of `allocate_shared` and `make_shared` for arrays for a more optimal and more maintainable implementation (Glen Fernandes) * Pointer cast functions with move semantics (Chris Glover) * [phrase library..[@/libs/type_index/ TypeIndex]:] * Added `BOOST_TYPE_INDEX_IMPLEMENT_RUNTIME_CAST`, which implements the functionality for `runtime_cast` but does not include the `BOOST_TYPE_INDEX_REGISTER_CLASS` macro (thanks to Chris Glover for imlpementing it) * Fixed undefined macro warning in stl_type_index.hpp [ticket 12739] * CI tests now run with `address`, `leak`, and `undefined` sanitizers * [phrase library..[@/libs/type_traits/ TypeTraits]:] * Added new trait `make_void`. * [phrase library..[@/libs/variant/ Variant]:] * Fixed construction of variant from `recursive_variant_` (thanks to Mikhail Maksimov for the fix) [ticket 12508], [ticket 12645] * Do not enable variadic templates for MSVC2015Upade1 as it still has issues [ticket 12236] * Workaround GCC6 crash (thanks to Mikhail Maksimov for the workaround) [ticket 12680], [ticket 7120] * Made `boost::polymorphic_*get` to work as `boost::*get` in undocumented border cases and fixed tests [ticket 11950] * CI tests now run with `address`, `leak`, and `undefined` sanitizers * /TODO/ [/ TODO: These libraries always use the same message, referring to their individual release notes. So check if they apply before the beta: * /TODO/: [phrase library..[@/libs/spirit/ Spirit]:] * Spirit Vx.x, see the '[@/doc/libs/1_xx_x/libs/spirit/doc/html/spirit/what_s_new/spirit_x_x.html What's New]' section for details. * /TODO/: [phrase library..[@/libs/wave/ Wave]:] * See the [@/libs/wave/ChangeLog Changelog] for details. ] [endsect] [section Compilers Tested] Boost's primary test compilers are: * /TODO/ Boost's additional test compilers include: * /TODO/ [endsect] [section Acknowledgements] /TODO/ [endsect]