Boost
Releases
arrow_drop_down
Newest Release (1.92.0)
August 5, 2026
Dependencies
There were 2 dependencies added (in 2 libraries) and 7 dependencies removed (in 5 libraries) this release.
Platform File SHA256 Hash
Unix boost_1_92_0.tar.bz2 5c1d4....cbc6c
boost_1_92_0.tar.gz c4a3b....296ce
Windows boost_1_92_0.7z 57f2d....68615
boost_1_92_0.zip c46ba....4549f
Windows (Binary) boost_1_92_0-bin-msvc-all-32-64.7z ec51e....0929e
boost_1_92_0-msvc-14.1-32.exe ff785....626c6
boost_1_92_0-msvc-14.1-64.exe 7860a....b16c7
boost_1_92_0-msvc-14.2-32.exe 97d83....37e1a
boost_1_92_0-msvc-14.2-64.exe 1409a....dc1a8
boost_1_92_0-msvc-14.3-32.exe f15c2....cf9cd
boost_1_92_0-msvc-14.3-64.exe 90db7....383b3
boost_1_92_0-msvc-14.5-32.exe d9e55....a9219
boost_1_92_0-msvc-14.5-64.exe 07e49....9b6f7

Version 1.92.0

General Notes

  • In previous releases, Windows .dll files were installed by b2 install into the library directory (<PREFIX>/lib by default), except on Cygwin, where they were installed into the binary directory (<PREFIX>/bin by default.)

    This has been changed to consistently install .dll files into the binary directory, which is the behavior most users want.

    For compatibility, a new command line option, --dlldir, has been added to b2 install so that the directory can be overridden, and if needed, pointed to <PREFIX>/lib.

  • The CMake configuration file installed by b2 install has been updated to support requesting header-only libraries as find_package components.

    That is, something like find_package(Boost REQUIRED COMPONENTS mp11) works now (and defines the target Boost::mp11), whereas previously it did not (only compiled libraries were considered components).

    This matches the behavior of the CMake configuration files installed by building Boost with CMake, making it possible to consume Boost in the same way regardless of how it was built and installed.

    As part of this regularization, the little used feature of requesting COMPONENTS ALL has been removed. It’s not supported by the CMake Boost build, and was never supported by FindBoost.

New Libraries

Updated Libraries

  • Asio

    • Added a "scheduler" / "assume_continuation" configuration parameter, which allows posted handlers to be added to a fast thread-local queue.

    • Added "reactor" configuration parameters for tuning the io_uring backend: io_uring_ring_count, io_uring_ring_size, io_uring_submit_batch_size and io_uring_iowait.

    • Added the ability to configure ssl::stream<>'s internal buffer sizes.

    • Added a forward declarations header boost/asio/fwd.hpp to safely forward declare Asio class names when using the versioned namespace.

    • Added an example for using cancel_after with coroutines.

    • Added support for co_composed under BOOST_ASIO_NO_EXCEPTIONS.

    • Added a missing optimisation for concurrency_hint == 1 in io_context::poll_one().

    • Changed all exception classes to use inline implementations, to fix an undefined symbol error on some platforms when using separate compilation.

    • Changed constants and CPOs to use external linkage for C++17 and later.

    • Changed "slim" mutexes to use futexes on Linux.

    • Changed the reactor to use MSG_DONTWAIT, if supported, rather than setting the socket to be non-blocking.

    • Fixed two co_composed crashes on MSVC, one when using multiple completion signatures, and one due to insufficient alignment.

    • Fixed the return type on one cancel_after overload.

    • Fixed an integer truncation issue in basic_streambuf::commit/consume.

    • Fixed a buffer invalidation error triggered when SSL streams are moved, and clarified the buffer invalidation semantics.

    • Fixed a compilation error, seen on some compilers, that occurs when using post, dispatch or defer with a completion handler.

    • Fixed parallel_group handling of non-terminal cancellation requests.

    • Fixed some thread sanitizer warnings due to atomic thread fences, and added extra thread sanitizer instrumentation.

    • Fixed a signed/unsigned warning in basic_resolver_results, and suppressed some case fall-through warnings.

    • Fixed experimental::channel compilation with older versions of MSVC.

    • Fixed the multicast::enable_loopback socket option size on NetBSD and OpenBSD.

    • Fixed standard library coroutine detection when using clang-cl.

    • Improved cross-referencing within the documentation.

    • Consult the Revision History for further details.

  • Assert:

    • Fix BOOST_VERIFY in the rare case of both BOOST_ENABLE_ASSERT_HANDLER and BOOST_ENABLE_ASSERT_DEBUG_HANDLER being defined.

  • Beast:

    • websocket::stream accepts close code 1014 (bad gateway).

    • http::basic_parser ignores connection and framing fields in trailers.

    • http::parser drops framing and connection-control fields carried in trailers.

    • http::basic_parser rejects chunked transfer-encoding in HTTP/1.0 requests.

    • http::basic_parser rejects Content-Length with Transfer-Encoding regardless of field order.

    • http::basic_parser rejects requests with a Transfer-Encoding that does not end in chunked.

    • http::basic_parser validates quoted-strings in chunk extensions.

    • http::message::prepare_payload rejects 1xx responses with a body.

    • websocket::stream rejects 64-bit frame lengths with the high bit set.

    • File operations clear the error_code on success.

    • The server-flex-awaitable example dispatches cancellation to the task’s strand.

    • Removed dependency on Boost.Functional.

  • Charconv:

    • Added CUDA support allowing both to_chars and from_chars for integers to be used in CUDA kernels

    • Fixed support for Clang on PPC64LE as it keeps long double and __float128 as distinct types which was previously considered invalid via static_assert

  • ContainerHash:

    • Hashing a valueless std::variant instance no longer throws.

  • Container:

    • Added new boost::container::hub container designed by Joaquín M. López Muñoz.

      See the Hub Container chapter in the Container documentation for more information.

    • Fixed bugs/issues:

      • Wrong overload resolution protection in implementation of P2363R5 (#334).

      • Compile error with erase and small_vector<std::string> (#336).

      • uses_allocator_construction.hpp: missing #include …​/config_end.hpp (#338).

    • Added unchecked_emplace_back and unchecked_push_back to boost::container::vector, boost::container::static_vector, and boost::container::small_vector.

    • Implemented C++23 P1518 change: modified allocator-extended constructors for all containers so that the deduction guides for containers are not overconstrained.

  • Conversion:

    • C++20 Module boost.conversion was implemented. Many thanks to Fedor Osetrov for the PR (PR#43)!

  • Decimal:

    • Added initial CUDA support allowing decimal32_t, decimal64_t, and decimal128_t to be used in CUDA kernels

    • Added decompose function which returns the significand, exponent, and sign without normalization (i.e. in their current cohort)

  • DLL:

  • Filesystem:

    • Marked templated versions of initial_path as deprecated and removed from v4. Use the non-templated versions instead.

    • Use readdir instead of readdir_r on more POSIX platforms, specifically on Mac OS and other Apple operating systems, FreeBSD, OpenBSD, DragonFly BSD, NetBSD, QNX 6.0 and later, Solaris 10 and later and Illumos-based systems. Solaris users with gcc are recommended to define SunOS_5_x macros according to their target Solaris version (e.g. SunOS_5_11) when building Boost. (#349)

    • Support for platforms with non-thread-safe readdir is deprecated and will be removed in a future release. Although not required until POSIX.1-2024, on modern systems readdir is thread-safe when used with separate DIR objects in different threads and on some systems readdir_r is marked as deprecated. POSIX.1-2024 has been updated accordingly and also marked readdir_r as obsolescent, with a planned removal in a future version of the specification.

    • On POSIX platforms, handle EINTR error code returned from opendir, readdir and equivalents. Although not documented, this error code, reportedly, may be returned on Apple operating systems and some BSD systems.

  • Geometry:

    • Improvements (geometry):

      • Drop varray implementation in favor of Boost.Container static_vector (PR#1458).

      • Refactor/reduce misc boost dependencies (PR#1459).

      • Improve short-distance accuracy of Andoyer inverse (PR#1461).

    • Solved issues (geometry):

      • Unit test index_rtree_exceptions_rst fails (#1399).

      • Performance regression on GCC (#1452).

      • Missing citation guidelines (#714).

      • Two almost identical rectangles have no intersection (#1471).

      • Various fixes of errors and warnings.

  • Graph:

    • Added a Louvain community detection algorithm for modularity-based clustering (PR#453).

    • Removed the dependency on Boost.StaticAssert (PR#450).

    • Fixed bugs and correctness issues:

      • Corrected the types used in adjacency_list serialization (PR#443).

      • Initialized edge_property_type in adjacency_list.hpp (PR#505).

      • Fixed a wrong accessor return type (PR#504).

    • Modernized types and hygiene:

      • Added missing const qualifiers and replaced typedef with using in several headers (PR#508).

      • Removed narrowing conversions in random.hpp, bandwidth.hpp, and king_ordering.hpp (PR#497, PR#498, PR#499).

      • Replaced deprecated std::random_shuffle with std::shuffle (PR#513).

      • Silenced -Wunused-* warnings and removed dead test variables (PR#510, PR#511, PR#512).

      • Cleared GCC -Wsign-compare warnings (PR#514).

    • Documentation: updated the entire documentation and migrated to a new visual design (PR#469, PR#491, PR#509, PR#517, PR#519).

  • Hash2:

    • Added built-in support for std::optional

    • Added built-in support for std::variant, std::monostate

  • Heap:

    • This release is the last to support C++14. Future releases will require C++17.

  • ICL:

    • Starting with version 22, libc++ has changed some lookup algorithms of its associative containers in a way that breaks ICL’s assumptions and behavior. The library internals have been refactored to solve the problem and make ICL robust against future decisions of the C++ committee regarding non-heterogeneous lookup for associative containers (PR#54, LWG4752).

    • Fixed C++20-related problems with std::iter_value_t<element_iterator> and GCC 10-12’s handling of rewritten relational operators (PR#54).

    • Fixed a GCC 10-11 codegen bug (PR#54).

  • Interprocess:

    • Fixed bugs:

      • AIX build fix: fix return type in get_invalid_systemwide_thread_id (PR#280).

      • Locks in message_queue_t cover more code than intended (#281).

  • Iterator:

    • Added is_*_iterator_v variable templates in C++14 and later, equivalent to the corresponding iterator traits.

    • The distance and advance algorithms are now constrained by requiring is_iterator to return true for the iterator arguments. (PR#96)

  • LexicalCast:

    • C++20 Module boost.lexical_cast was implemented. Many thanks to Fedor Osetrov for the PR (PR#96)!

  • Lockfree:

    • This release is the last to support C++14. Future releases will require C++17.

    • Added new boost::lockfree::mpsc_weak_queue, a multi-producer, single-consumer queue. While push and pop are individually wait-free, the queue is not linearizable and a producer that stalls between exchanging the tail and linking its node can permanently break the queue, so it is not strictly lock-free.

    • Added new boost::lockfree::bounded_ticket_queue, a ringbuffer-based bounded MPMC queue. The queue is linearizable and wait-free when configured with a single producer and single consumer. In multi-producer or multi-consumer configurations, a stalled thread that has claimed a slot can block progress, so the queue is not strictly lock-free.

  • Math:

    • Added a degree of freedom finder to the Student’s T and Non-centeral F disributions

    • Fixed CUDA compilation where host functions were invalidly being marked as device during compilation

    • Increased testing coverage of distributions leading to several overflow fixes

  • Mp11:

    • Improved the performance of a number of algorithms (contributed by Jonathan Poelen)

  • MQTT5:

    • mqtt_client::async_run now completes immediately with client::error::already_running when the client is already running (#54).

    • Fixed several missing length checks when decoding packets received from the broker. Malformed packets could previously cause out-of-bounds reads or excessive memory allocation. Many thanks to Team-Atlanta for reporting these issues.

  • MSM:

    • New features (backmp11):

      • Provide an observer API for logging support (#220)

      • Forward Kleene events to actions and guards without conversion (#229)

      • Ensure basic exception guarantee and propagate exceptions to the caller (#221)

      • Provide a reflection API and serialization support for Boost.Serialization, Boost.JSON and nlohmann/json (#197)

      • Rework terminate and interrupt state handling and provide a machine_state enum (#244)

      • Configurable event pool and inline storage (#239)

      • API reference and examples are now available

    • Bug fixes (backmp11):

      • State machine processes events although it is not running (#198)

    • Breaking changes (backmp11):

      • Events in process_event(…​) are not enqueued automatically anymore to reduce memory footprint, use enqueue_event(…​) in actions (#178)

      • The back-end does not forward constructor arguments to the front-end anymore, it must be default-constructible. To use custom constructors, define them in the back-end (#232)

      • The deprecated APIs process_queued_events() and process_single_queued_event() are removed, use process_event_pool(…​) instead

      • The default active state switch policy is set to "after source exit" in compliance to the UML specification. The other options are not UML-compliant and will be removed (#222)

      • The back-end uses its own process_result type with new enum values instead of aliasing the enum of the back namespace. The old enum values are deprecated (#242) and will be removed

    • fix(back, back11): Infinite recursion with event deferral in orthogonal regions (regression from 1.78) (#184)

  • MultiIndex:

    • Fancy pointer support has been extended so that multi_index_container iterators now store references to the elements through the allocator’s pointer type. In particular, this means that iterators can now be placed in shared memory using Boost.Interprocess allocators.

    • Fixed a performance issue with hashed indices when rehashing at very large container sizes (PR#94). Contributed by Daniel Král.

  • Multiprecision:

    • Added data() member function to float128 to match the rest of the library

    • Fixed issue blocking compilation of constexpr expression templates with Clang

  • MySQL:

    • Added a way to configure which character set the server uses by default, to make tracking more intelligent. This can be used to avoid redundant SET NAMES statements. See pool_params::charset_strategy and connect_params::server_default_charset (PR#511).

    • Reduces `pool_params::ping_interval’s default from 1h to 10s. This improves the detection of broken connections (PR#512).

    • The read buffer has been optimized by reducing the frequency of data rotations when incomplete messages are received (PR#501). Contributed by @vsoulgard.

    • TLS certificates for CI testing are now generated dynamically, rather than being committed into the repository. This cleans up reports raised by vulnerability scanners (PR#505).

  • PFR:

    • C++20 Module boost.pfr is now also tested with and without import std. Many thanks to Fedor Osetrov for the PR (PR#233)!

  • PolyCollection:

    • Made variant_collection_value_type_impl<Ts...>'s relational operators available only when the corresponding relational operator is available for all Ts..., in accordance with WG21 paper P2944R3.

    • Fixed incompatibility problem with libc++ v21 or higher (PR#34).

  • Redis:

    • Fixed a case of undefined behavior within connection when attempting to cancel a request that has completed, but whose handler hasn’t been called yet. This happened due to an incorrect erase-remove use with a std::deque (PR#428). Contributed by @L0rentz.

    • Optimized buffer rotations to reduce CPU consumption when many small messages arrive in a single network packet (PR#415).

    • Added initializers to all members in the config struct. This allows using designated initializers to create config objects (PR#424).

    • Removed the standalone workflow from the CMake. This was an undocumented way of consuming Boost.Redis with CMake aimed to internal development (PR#409).

  • Stacktrace:

    • C++20 Modules were implemented:

      • boost.stacktrace_dump module for safe_dump interface

      • boost.stacktrace_<backend> module for each unwind/collect implementation method

      • boost.stacktrace module exposing best available backend implementation. Many thanks to Fedor Osetrov for the PRs (PR#230, PR#227)!

    • C++20 Module boost.stacktrace is now also tested with and without import std. Many thanks to Fedor Osetrov for the PR (PR#231)!

    • Fixed Boost::from_exception link on MinGW. Many thanks to Orgad Shaneh for the PR (PR#225)!

  • System:

    • Fix unwrap_and_invoke for functions returning void.

  • TypeIndex:

    • C++20 Module boost.type_index is now also tested with and without import std. Many thanks to Fedor Osetrov for the PR (PR#47)!

  • Unordered:

    • Added interoperability with C++20 ranges to all the containers in the library: insert_range (plus insert_range_(or|and)_[c]visit for concurrent containers), std::from_range construction and associated CTAD deduction guides. The boost::unordered::from_range construction tag is provided as an alternative to C++23 std::from_range or when this is not available.

    • Fixed a performance issue with closed-addressing containers when rehashing at very large container sizes (PR#348). Contributed by Daniel Král.

  • URL:

    • Fixed a heap buffer overflow in normalize_path for authority-less URLs whose normalized path begins with // (PR#995).

    • Fixed an uninitialized read in ipv6_address_rule when an embedded IPv4 address has no preceding h16, e.g. https://[::. (PR#994).

    • Fixed unsigned-integer-overflow sanitizer findings in case-insensitive comparisons, hashing, and format (PR#994).

    • Fixed decoded query-size tracking in url_base::edit_params (PR#990).

    • Third-round security review fixes: url_view copy from a null source, two incorrect noexcept specifiers, and decoded-length tracking when iterating segments in reverse (PR#988).

  • Wave:

    • Introduce digit separators (C++14), module keyword (C++20), and size_t literals (C++23).

    • Fixed bugs.

      • find_include_file incorrectly accepts directories as include files (#243).

      • Predefined macros (__FILE__, __LINE__, __INCLUDE_LEVEL__) are expanded twice when expanding_object_like_macro returns true (#246).

Updated Tools

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.

Contributors

Ion Gaztañaga
Ion Gaztañaga
Contributor
Matt Borland
Matt Borland
Contributor
Arnaud Becheler
Contributor
Peter Dimov
Peter Dimov
Contributor
Andrey Semashev
Andrey Semashev
Contributor
Rene Rivera
Rene Rivera
Contributor
Christopher Kohlhoff
Christopher Kohlhoff
Contributor
Jacob Hass
Contributor
Christian Granzin
Contributor
Christopher Kormanyos
Christopher Kormanyos
Contributor
Jeremy W. Murphy
Jeremy W. Murphy
Contributor
Tim Blechmann
Tim Blechmann
Contributor
Joaquin M. López Muñoz
Joaquin M. López Muñoz
Contributor
Gennaro Prota
Contributor
John Maddock
John Maddock
Contributor
Jonathan Poelen
Contributor
Anarthal (Rubén Pérez)
Anarthal (Rubén Pérez)
Contributor
Andrea Cassioli
Contributor
Oliver Kowalke
Oliver Kowalke
Contributor
Alan de Freitas
Alan de Freitas
Contributor
Dmitry
Dmitry
Contributor
Marshall Clow
Marshall Clow
Contributor
Vissarion Fisikopoulos
Vissarion Fisikopoulos
Contributor
Mohammad Nejati
Mohammad Nejati
Contributor
sdarwin
sdarwin
Contributor
Tinko Sebastian Bartels
Contributor
Marcel Jacobse
Contributor
Fedor Osetrov
Contributor
Alexander Grund
Alexander Grund
Contributor
Tinko Bartels
Tinko Bartels
Contributor
Jeff Trull
Jeff Trull
Contributor
Pavel Samolysov
Contributor
Sahana Bogar
Contributor
vsoulgard
Contributor
Neil Schemenauer
Contributor
jofaber
jofaber
Contributor
ivanpanch
Contributor
E Kawashima
E Kawashima
Contributor
Robert Ramey
Robert Ramey
Contributor
Antony Polukhin
Antony Polukhin
Contributor
Anton Karpov
Contributor
Joel de Guzman
Joel de Guzman
Contributor
sortA
Contributor
James E. King III
James E. King III
Contributor
Barend Gehrels
Barend Gehrels
Contributor
Jean-Louis Leroy
Contributor
Philipp Remy
Contributor
Andrzej Krzemieński
Andrzej Krzemieński
Contributor
Murray Cumming
Contributor
Ramya Eliger
Contributor
Jacob Hass
Contributor
Nana Sakisaka
Nana Sakisaka
Contributor
Bruno Iljazovic
Contributor
dschmitz89
dschmitz89
Contributor
Jan-Grimo Sobez
Jan-Grimo Sobez
Contributor
Emil Dotchevski
Emil Dotchevski
Contributor
fynnwilliam
Contributor
Krystian Stasiowski
Krystian Stasiowski
Contributor
Niall Douglas
Niall Douglas
Contributor
kraldan
Contributor
Georgy Guminov
Contributor
Mateusz Jakub Fila
Contributor
Jonathan Wakely
Jonathan Wakely
Contributor
Uilian Ries
Contributor
Marcelo Zimbres
Marcelo Zimbres
Contributor
Marco Ribeiro
Contributor
Andrea Cassioli
Contributor
Orgad Shaneh
Orgad Shaneh
Contributor
Charles Bicari
Contributor
Quinnsicle
Quinnsicle
Contributor
Ahmed Abou Aliaa
Contributor
Stephen G Tuggy
Contributor
Gaspard Petit
Contributor
Jean-Louis Leroy
Contributor
Andreas Pokorny
Contributor
Daniel Schmitz
Contributor
Peter Kerzum
Contributor
Carlo Bramini
Contributor
Sergey Chebotarev
Contributor
Vasily Sviridov
Contributor
a-leontyev
Contributor
Danil Sidoruk
Contributor
Pietro Fezzardi
Contributor
Sergei Zimmerman
Contributor
Weixie Cui
Contributor
Roman Savchenko
Roman Savchenko
Contributor
Joris van Rantwijk
Contributor
Xeverous
Xeverous
Contributor
O01eg
Contributor
Povilas Kanapickas
Povilas Kanapickas
Contributor
Vinícius dos Santos Oliveira
Contributor
Murray Cumming
Murray Cumming
Contributor
Otto C.
Contributor
Mike Kruskal
Contributor
Lorentz-Andrea Romeo
Contributor
Sergiu Deitsch
Sergiu Deitsch
Contributor
Jeff Garland
Jeff Garland
Contributor
Sven Wehner
Contributor
warren
warren
Contributor
Baoshuo Ren
Baoshuo Ren
Contributor
Sebastijan Todorovic
Contributor
Gleb Popov
Contributor
Edward Diener
Edward Diener
Contributor
Davide Iafrate
Contributor
Omkar Bhor
Contributor
tkoecker-dt
Contributor
Stefan Seefeld
Stefan Seefeld
Contributor
Ilya Kurdyukov
Contributor
Luke Mewburn
Luke Mewburn
Contributor
Vladimir Prus
Vladimir Prus
Contributor