Boost
Releases
arrow_drop_down
Beta Release (1.91.0.beta1)
Platform File SHA256 Hash
Unix boost_1_91_0_b1.tar.bz2 d1eb1....125db
boost_1_91_0_b1.tar.gz 1194f....c2e84
Windows boost_1_91_0_b1.7z 866a3....354a3
boost_1_91_0_b1.zip b8e78....38980
Windows (Binary) boost_1_91_0_b1-bin-msvc-all-32-64.7z be32e....679ec
boost_1_91_0_b1-msvc-14.1-32.exe ec1c2....9bd5e
boost_1_91_0_b1-msvc-14.1-64.exe 4d89f....09e3c
boost_1_91_0_b1-msvc-14.2-32.exe 9818d....be4f3
boost_1_91_0_b1-msvc-14.2-64.exe 038c1....c40ce
boost_1_91_0_b1-msvc-14.3-32.exe 7f2ba....39a99
boost_1_91_0_b1-msvc-14.3-64.exe 41b63....5dcce
boost_1_91_0_b1-msvc-14.5-32.exe aee8b....d8a6a
boost_1_91_0_b1-msvc-14.5-64.exe 43b43....37fda

Version 1.91.0

New Libraries

Updated Libraries

  • DynamicBitset:

    • Added a missing friend declaration for operator-( const bit_iterator_base< Iter > & lhs, const bit_iterator_base< Iter > & rhs ).

    • Fixed compilation with standard library implementations which use raw pointers as iterators.

    • Fixed from_block_range() to prevent it from setting any bit in the unused part of the bitset.

  • Exception:

    • Added customizable serialization API, built-in support for Boost.JSON and nlohmann/json.

  • LEAF:

    • Added customizable serialization API, built-in support for Boost.JSON and nlohmann/json.

    • Added support for using LEAF error objects across DLL boundaries on Windows (off by default).

    • Refinements in the internal TLS API (e.g. Win32, embedded).

    • Improvements in the diagnostics system and in the on_error implementation.

    • Implementation quality improvements (e.g. more precise use of noexcept).

    • Removed the deprecated verbose_diagnostic_info (replaced by diagnostic_details).

  • MultiIndex:

    • Breaking change: All type lists accepted or provided by the library (indexed_by, tag, nested typedefs index_specifier_type_list, index_type_list, iterator_type_list and const_iterator_type_list) are no longer based on Boost.MPL but instead they are now Boost.Mp11 lists. As a result, Boost.MultiIndex doesn’t depend anymore on Boost.MPL. It is expected that most user code won’t be impacted by this change, but the previous behavior may be restored, however, by globally defining the macro BOOST_MULTI_INDEX_ENABLE_MPL_SUPPORT. Legacy support for Boost.MPL may be eventually deprecated and removed in the future.

    • Breaking change: composite_key and associated class templates (composite_key_equal_to, composite_key_compare, composite_key_hash) have been made variadic (previously the maximum number of template arguments was limited by BOOST_MULTI_INDEX_LIMIT_COMPOSITE_KEY_SIZE). This change should be transparent to users, with the exception that composite_key::key_extractors returns a std::tuple instead of a boost::tuple (and similarly for the rest of affected class templates).

    • Removed internal workarounds and fallbacks to support pre-C++11 compilers.

  • MSM:

    • New features (backmp11):

      • Improve support for the deferred_events property in hierarchical state machines (#173)

      • Support conditional deferral with the deferred_events property (#155)

      • Simplified functor signatures (#175)

      • Merge queued and deferred events into a single event pool (#168)

      • Small object optimization for events in the event pool (#172)

      • Improve runtime performance with a flat_fold dispatch strategy (#180)

      • Further optimize compilation, with up to 25% faster compile times and lower RAM consumption compared to version 1.90

    • Bug fixes (backmp11):

      • Incorrect FSM type in calls to on_entry(…​) and on_exit(…​) (#167)

      • Completion events fire too often (#166)

    • Breaking change (backmp11): Direct access to the event pool is changed from public to protected, because manipulating it outside of the library code can lead to undefined behavior.

  • Unordered:

    • Fixed the returned value of range insertion in concurrent containers (PR#344).

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.