Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

Version 1.81.0

Version 1.81.0 beta 1

November 17th, 2022 03:53 GMT

Documentation

Beta Downloads
PlatformFileSHA256 Hash
unixboost_1_81_0_b1.tar.bz2941c568e7ac79aa448ac28c98a5ec391fd1317170953c487bcf977c6ee6061ce
boost_1_81_0_b1.tar.gz135f03965b50d05baae45f49e4b7f2f3c545ff956b4500342f8fb328b8207a90
windowsboost_1_81_0_b1.7z736b041748d04c573d145613161cf2e54beb210c5511b67e6fac5510b82b6646
boost_1_81_0_b1.zipc58d50acf58a98d4f5a7d891257d154efa50ca90312ca446586c7b4f9b7d3f14

New Libraries

  • URL: A library for parsing, modifying, and printing URLs using only C++11, from Vinnie Falco and Alan de Freitas. Features include fast compilation, strong invariants, and strict compliance using a memory-friendly approach.

Updated Libraries

  • Beast:
    • Add buffers_generator
    • Add beast::http::message_generator
    • Added buffer_ref, so beast buffers can be used with asio.
    • Support for per-operation cancellation
    • C++20 awaitable examples.
    • websocket per-message compression options
    • websocket timeout option api
    • multiple content length error
    • Support for default-completion and rebind
  • Container Hash:
    • Major update.
    • The specializations of boost::hash have been removed; it now always calls hash_value.
    • Support for BOOST_HASH_NO_EXTENSIONS has been removed. The extensions are always enabled.
    • All standard containers are now supported. This includes std::forward_list and the unordered associative containers.
    • User-defined containers (types that have begin() and end() member functions that return iterators) are now supported out of the box.
    • Described structs and classes (those annotated with BOOST_DESCRIBE_STRUCT or BOOST_DESCRIBE_CLASS) are now supported out of the box.
    • hash_combine has been improved.
    • The performance (and quality, as a result of the above change) of string hashing has been improved. boost::hash for strings now passes SMHasher in 64 bit mode.
    • The documentation has been substantially revised to reflect the changes.
  • Describe:
    • To allow the inclusion of enumerators.hpp, bases.hpp, and members.hpp when the option -pedantic is used, the invocation of BOOST_DESCRIBE_ENUM has been moved from modifiers.hpp into a separate header, modifier_description.hpp. As a consequence, modifiers.hpp no longer includes enum.hpp. Code that has been relying on this implicit inclusion may fail, and will need to be fixed to include enum.hpp.
  • Locale:
    • Major update with some breaking changes.
    • C++11 support is now required, support for C++03 and earlier is dropped
    • Some enums have been converted to enum classes - Avoids name clashes
    • Replace -sICU_LINK_LOCALE & -sICU_LINK by fine-grained configuration options as done in Boost.RegEx
    • Fix detection of libiconv allowing Boost.Locale to be build (again) on some platforms
    • Remove use of and support for std::auto_ptr
    • Make the codecvt using wchar_t on Windows assume/use UTF-16 enconding
    • Performance improvements: Make basic_format, date_time & hold_ptr movable, Fix use of format cache
    • Make Boost.Locale compatible with more ICU versions (especially the tests)
    • Fix RTTI definitions for some classes (visibility issues)
    • Fix compatibility of the ICU backend with some libc++ versions
    • Fix return value of some operators to correctly return non-const *this
    • Fix int-overflow on negative roll of years in date_time
    • Handle or suppress many warnings which makes the build log cleaner
    • Add support for more Windows codepages
    • Fix support for Windows codepages like ISO-2022-JP
  • Nowide:
    • Fix build failure of tests on MSVC
  • System:
    • The macro BOOST_SYSTEM_DISABLE_THREADS can now be defined to disable the use of <mutex> (e.g. on single-threaded libstdc++).
    • Added value_type, error_type, in_place_value, in_place_error to result<>.
    • Added emplace to result<>.
  • Unordered:
    • Major update.
    • Added fast containers boost::unordered_flat_map and boost::unordered_flat_set based on open addressing.
  • Variant2:
    • Added support for boost::json::value_from and boost::json::value_to.
  • Flyweight:
    • Maintenance work.
  • Multi-index Containers:
    • Maintenance work.

Compilers Tested

Boost's primary test compilers are:

  • Linux:
    • Clang: 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: 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: 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 and Glen Fernandes managed this release.