Version 1.89.0
Version 1.89.0
August 14th, 2025 02:16 GMT
| Platform | File | SHA256 Hash | 
|---|---|---|
| unix | boost_1_89_0.tar.bz2 | 85a33fa22621b4f314f8e85e1a5e2a9363d22e4f4992925d4bb3bc631b5a0c7a | 
| boost_1_89_0.tar.gz | 9de758db755e8330a01d995b0a24d09798048400ac25c03fc5ea9be364b13c93 | |
| windows | boost_1_89_0.7z | d8b0c1d593d68fe359616aa2fae4b3e258ca1f90ed57eb46c5494c29cdd1d49d | 
| boost_1_89_0.zip | 77bee48e32cabab96a3fd2589ec3ab9a17798d330220fdd8bde6ff5611b4ccde | 
New Libraries
- 
        Bloom: Bloom filters, from Joaquín M López Muñoz.
Updated Libraries
- 
        Any:- 
              Initial support for C++20 Modules. See the docs for more info.
 
- 
              
- 
        Asio:- 
              Added allocator constructors toexecution_context,io_contextandthread_pool, with the supplied allocator being used for allocating objects associated with the execution context.
- 
              Added a new configuration parameter "timer" / "heap_reserve" that may be used to reserve space in the vector used for a timer queue's heap.
- 
              Added a new configuration parameter "resolver" / "threads" that specifies the number of internal threads used byasync_resolveto emulate asynchronous address resolution.
- 
              Removeddeadline_timer,basic_deadline_timerandtime_traitsfrom the convenience header boost/asio.hpp.
- 
              Ensured that the Windows named pipes created byconnect_pipeuse unique names that do not conflict if Asio is used in multiple, independent plug-in DLLs.
- 
              ChangedBOOST_ASIO_CONCURRENCY_HINT_SAFEto be consistent with theio_contextdefault constructor.
- 
              Fixed the documentation forBOOST_ASIO_CONCURRENCY_HINT_UNSAFE_IOto reflect that registration locking is still enabled.
- 
              Added separate b2 and cmake build targets for optional dependencies.
- 
              Added the[[noreturn]]attribute toboost::asio::detail::throw_exception.
- 
              Fixedco_spawnto adhere to the asynchronous operation requirement for non-reentrant invocation of the completion handler.
- 
              Added a documentation note onbasic_signal_setasync signal safety.
- 
              Fixed various minor compilation errors on different platforms.
- 
              Consult the Revision History for further details.
 
- 
              
- 
        Atomic:- 
              Added TSAN instrumentation in asm-based x86, AArch32, AArch64 and PPC backends. This silences TSAN false errors for code using Boost.Atomic for thread synchronization.
- 
              Following the announcement in Boost 1.84, removed support for Windows versions older than Windows 10.- 
                    A note to MinGW-w64 users. Since Windows SDK headers on MinGW-w64 define_WIN32_WINNTto an older Windows version by default, you may need to define_WIN32_WINNT=0x0A00orBOOST_USE_WINAPI_VERSION=0x0A00when compiling Boost.Atomic and the code that uses Boost.Atomic.
 
- 
                    
- 
              Support for Windows CE is deprecated and will be removed in a future release.
- 
              Added support for timed waiting operations.
- 
              Exposedthread_pauseoperation, which can be used as a backoff measure in spin loops. Added support for PowerPC and improved support for AArch64 inthread_pause.
- 
              RemovedBOOST_ATOMIC_NO_ATOMIC_FLAG_INITmacro definition. Since the library now requires C++11,BOOST_ATOMIC_FLAG_INITis always supported.
- 
              Enabled bitwise operations for atomic enumerations. This can be useful when enumerations are used to implement bit masks.
 
- 
              
- 
        Beast:- 
              Fixes- 
                    Conditionally definedimmediate_executor_typeinasync_base.
- 
                    Added missingcstdintheader todetail/cpu_info.hpp.
- 
                    Fixedstd::is_trivialdeprecation warnings.
- 
                    handshake_timeoutnow applies to closing handshakes during reads.
 
- 
                    
- 
              Improvements- 
                    Replaceddetail/work_guard.hppwithnet::executor_work_guard.
- 
                    Fixed portability issues for building tests in MinGW.
 
- 
                    
- 
              Documentation- 
                    Removed moved sections from documentation.
- 
                    Removed superfluous log messages from tests.
 
- 
                    
- 
              Acknowledgements- 
                    yliu1021
 
- 
                    
 
- 
              
- 
        Charconv:- 
              Fixed a performance degradation withfrom_charsfor integer types
- 
              Fixed rounding and trailing decimal place bugs withto_charsfor specified precisions with floating point types
 
- 
              
- 
        Cobalt:- 
              Move assign fixed for generator & promise.
- 
              Fixed internal exceptions
- 
              Added IO library. Cobalt.io provides a large subset of asio as a compiled library.
 
- 
              
- 
        Compat:- 
              Addedmove_only_function.hpp.
 
- 
              
- 
        ContainerHash:- 
              Added thehash_is_avalanchingtrait class.
 
- 
              
- 
        Conversion:- 
              Added an ability to usepolymorphic_downcastandpolymorphic_castin constexpr (requires C++20).
 
- 
              
- 
        Detail:- 
              Operators generated byBOOST_BITMASKnow use underlying type of the enum to implement bitwise operators. The operators are markednoexceptandconstexpr, when possible.
- 
              The functionbitmask_setgenerated byBOOST_BITMASKis marked deprecated. In a future release,BOOST_BITMASKwill stop producing this function. Users are recommended to use double negation (!!mask) to test if the value is zero. This affects e.g. enums defined in Boost.Filesystem.
 
- 
              
- 
        DLL:- 
              Fixed compiling and exporting on Cygwin. Many thanks to Luohao Wang for the PR!
- 
              Fixed building on FreeBSD. Thanks to ash for the bug report!
- 
              AddedBOOST_DLL_USE_STD_FSCMake option to match the preprocessor option. Thanks to Yury Bura for the PR!
 
- 
              
- 
        Filesystem:- 
              Corrected ASAN warnings about comparing pointers to potentially unrelated objects inpath::append. (#335)
 
- 
              
- 
        Geometry:
- 
              Breaking changes- 
                    PR#1401 Remove deprecated headers
 
- 
                    
- 
              Solved issues- 
                    #1221 Difference with rectilinear multipolygon with integer coordinates produces invalid polygon with disconnected interior
- 
                    #1295 Wrong result in intersection (result polygon is equal to the biggest of the input polygons)
- 
                    #1349 Difference of polygons giving wrong result
- 
                    #1382 Buffer operation creates self-intersection
- 
                    Various fixes of errors and warnings
 
- 
                    
 
- 
        Hash2:- 
              Added Blake2 algorithm (blake2s_256,blake2b_512).
- 
              Added XXH3 algorithm (xxh3_128).
 
- 
              
- 
        Iterator:- 
              Fixedfilter_iteratorcopy/converting constructor, which could previously produce an invalid iterator. (#92)
- 
              iterator_facade::operator[]now always returns a proxy rather than conditionally returning a value or a proxy. This allows users to bind a reference to the result of the operator, regardless of whether the value type is trivially-copyable. (#61)
- 
              The proxy returned byiterator_facade::operator[]now supports forwarding dereferencing operators to the referenced value. This allowsit[n]->foo()and(*it[n]).foo()expressions to compile.
- 
              The proxy returned byiterator_facade::operator[]now implementes perfect forwarding in its assignment operator.
 
- 
              
- 
        JSON:- 
              Revamped documentation.
- 
              Optionals that are ranges are categorised as optionals.
- 
              Described class support is enabled for types with bases.
 
- 
              
- 
        Log:- 
              Added support forBOOST_LOG_WITHOUT_ASIOconfiguration macro, which can be used to remove the dependency on Boost.Asio and disable the related functionality.
- 
              Use locale-independent formatting of the file counter intext_file_backendwhen composing log file names. This fixes failures in the subsequent parsing of the file names infile_collector::scan_for_files. (PR#246)
- 
              Added a newwrap_filterutility that simplifies injecting user-defined function objects in filtering expressions. (#195)
 
- 
              
- 
        Math:- 
              Add explicit C++14<type_traits>andconstexprrequirement to builds
- 
              Collected fixes for GPU support on a variety of platforms
- 
              Fix lower incomplete gamma function with x = 0
- 
              Fix the external archive error in the jSO algorithm
- 
              Fix numeric underflow in ibeta
- 
              Fix inverse ibeta for large values of a and b
- 
              Fix variadic functions to make them safe with C++26
 
- 
              
- 
        Multiprecision:- 
              Major update.
- 
              Adds a new backend type:cpp_double_fp_backend
- 
              Fixes a namespace collision with Boost.Serialization
 
- 
              
- 
        MySQL:- 
              Thecaching_sha2_passwordauthentication plugin can now be used without TLS. This is the default in MySQL 8 and above. Plaintext connections that attempt to use this plugin no longer fail withclient_errc::auth_plugin_requires_ssl(#313).
- 
              The handshake algorithm is now more resilient to protocol violations (#469).
- 
              Fixed a build failure with gcc-15 due to a missing include (PR#475). Thanks hhoffstaette for the PR.
- 
              Optimizedmetadatarepresentation to be faster to construct and take less memory (#461).
 
- 
              
- 
        PFR:- 
              Rewrite C++20 module following the new recommended Boost practice. See the docs for more info.
- 
              Fixed C++26 compilation on modern clang compilers. Thanks to Valery Mironov for the report!
- 
              Support types that use 'Arrays of Length Zero' compiler extension.
- 
              Fixed typos. Thanks to Egor for highlighting the issues!
- 
              Returnstd::array<std::string_view, 0>type forboost::pfr::names_as_array(empty_struct{})to allow compilation offor (std::string_view name : boost::pfr::names_as_array(empty_struct{})). Many thanks to sabudilovskiy for the bug report!
 
- 
              
- 
        process:- 
              Addedv1.hppto emulate v1process.hppinclude.
- 
              Fix to windows path escaping
- 
              Fixed exit-code issue wehre terminate & async_wait lead to a loss of the exit-code value.
 
- 
              
- 
        Random:- 
              Fix NAN being generated bybeta_distribution
- 
              Improve the performance ofbeta_distribution::operator()
 
- 
              
- 
        TypeIndex:- 
              Initial support for C++20 Modules. See the docs for more info.
 
- 
              
- 
        Unordered:- 
              Deprecatedboost::unordered::hash_is_avalanchingis now a using-declaration ofboost::hash_is_avalanchingin<boost/container_hash/hash_is_avalanching.hpp>. Use that header directly instead.<boost/unordered/hash_traits.hpp>will be removed in the future.
- 
              Addedpull(const_iterator)to open-addressing containers. This operation allows for efficient removal and retrieval of an element via move construction.
 
- 
              
- 
        Histogram:- 
              Update CMake minimum version and Python detection in CMake
- 
              Improve documentation- 
                    Add example on how to make an axis which accepts multiple value types that are not implicitly convertible
- 
                    Show how to usehistogram::fillwith a multidimensional histogram efficiently when data per dimension is already available as contiguous data
 
- 
                    
- 
              Don't use deprecated form of user-defined literal operator
- 
              Add support for modular build structure with b2
- 
              Fixed warnings in MSVC about narrowed types
- 
              Added collector accumulator, which stores all values in a bin
- 
              Internal changes to tests and classes in detail namespace
 
- 
              
Updated Tools
- 
        Build:- 
              Includes release of B2 version 5.3.2.
 
- 
              
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.
 
  