| Platform | File | SHA256 Hash | |
|---|---|---|---|
| Unix | boost_1_84_0.tar.bz2 | cc4b893acf645c9d4b698e9a0f08ca8846aa5d6c68275c14c3e7949c24109454 cc4b893acf....9c24109454 cc4b8....09454 | |
| boost_1_84_0.tar.gz | a5800f405508f5df8114558ca9855d2640a2de8f0445f051fa1c7c3383045724 a5800f4055....3383045724 a5800....45724 | ||
| Windows | boost_1_84_0.7z | 81a4d10075731966477276c47324ecd9cac02da49899d36c48eba66e40014f25 81a4d10075....6e40014f25 81a4d....14f25 | |
| boost_1_84_0.zip | cc77eb8ed25da4d596b25e77e4dbb6c5afaac9cddd00dc9ca947b6b268cc76a4 cc77eb8ed2....b268cc76a4 cc77e....c76a4 | ||
| Windows (Binary) | boost_1_84_0-bin-msvc-all-32-64.7z | 7d15a7d89be727287bf7b6ac1aa964771f3bdd571d8d9eed2d1f21571a57d1f9 7d15a7d89b....571a57d1f9 7d15a....7d1f9 | |
| boost_1_84_0-msvc-14.0-32.exe | 3f643fff657bea98855c5047fa076f9c5e60b38eb20bc93c64c64fa50ba4f5c4 3f643fff65....a50ba4f5c4 3f643....4f5c4 | ||
| boost_1_84_0-msvc-14.0-64.exe | 901502a14a87b79162b604f06a1bfad4d2b53355a3b6f791ddb07858fea6b4db 901502a14a....58fea6b4db 90150....6b4db | ||
| boost_1_84_0-msvc-14.1-32.exe | e45333f8d2531562570e1af532b3156e7efff9a3ea94f4d999db2274db7c11b6 e45333f8d2....74db7c11b6 e4533....c11b6 | ||
| boost_1_84_0-msvc-14.1-64.exe | d45794a4e1fafb572acbfd3f0c8e215b0e91e7f2fb5f5ac0570da904050440bf d45794a4e1....04050440bf d4579....440bf | ||
| boost_1_84_0-msvc-14.2-32.exe | 70ab3bf95d76b8d9763180520f3ce7683e18c9ece886ae9e782d12c75b5ec9fd 70ab3bf95d....c75b5ec9fd 70ab3....ec9fd | ||
| boost_1_84_0-msvc-14.2-64.exe | 0551cd0e88533ec90f199d40a3c0b1d11e1c444df06b40c0afd2103a31b0e32e 0551cd0e88....3a31b0e32e 0551c....0e32e | ||
| boost_1_84_0-msvc-14.3-32.exe | 5403937efb805906acbb34fc1693b898818f6388506ff0f4f0c02e5cb7aef554 5403937efb....5cb7aef554 54039....ef554 | ||
| boost_1_84_0-msvc-14.3-64.exe | b14090362af9730ed9cc125b456a76d981b010060ee30e6d2eb109f8144fa444 b14090362a....f8144fa444 b1409....fa444 | ||
This is an older version of Boost and was released in 2023. The current version is 1.89.0.
Version 1.84.0
December 13th, 2023 23:54 GMT
Updated default target Windows version
Boost.WinAPI, a library that is used internally by other Boost libraries for defining Windows SDK components, has been updated to target Windows 10 API by default, where possible. This means that Boost libraries will target Windows 10 by default and may not run on older Windows versions. This includes the pre-built binaries that are distributed by Boost.
The affected libraries include:
- Boost.Atomic
- Boost.Beast
- Boost.Chrono
- Boost.DateTime
- Boost.DLL
- Boost.Filesystem
- Boost.Interprocess
- Boost.Log
- Boost.Pool
- Boost.Process
- Boost.System
- Boost.Stacktrace
- Boost.Thread
- Boost.UUID
as well as libraries that depend on the above.
Users are able to change the default by defining BOOST_USE_WINAPI_VERSION
or _WIN32_WINNT when building
and using Boost to the required version number. For example, to build Boost
targeting Windows 7 one could use a command line like this:
b2 variant=release define=BOOST_USE_WINAPI_VERSION=0x0601 stage
Note, however, that individual libraries may have their own requirements on the minimum supported Windows version.
The list of Windows API version numbers can be seen on this page.
New Libraries
- Cobalt:
- Basic algorithms and types for C++20 coroutines, from Klemens Morgenstern.
- Redis:
- async client library built on top of Boost.Asio, from Marcelo Zimbres Silva.
Updated Libraries
-
Any:
- C++03 is no longer supported PR#26.
- Fixed reference documentation generation. Now it is not overwritten by Boost.PFR reference. Thanks to Peter Dimov for the debugging.
-
Asio:
- Changed to require C++11 as the minimum language standard. C++03 is no longer supported.
-
Removed deprecated functionality from the
boost::asio::executionnamespace. - Removed deprecated invocation and allocation hooks.
-
Added
try_send_via_dispatchandtry_send_n_via_dispatchfunctions to channels. -
Added compatibility between Asio's placeholders and
std::bind. - Improved C++11 support for channels that have multiple completion signatures.
-
Fixed compatibility between channel asynchronous operations and
any_completion_handler. -
Fixed compatibility between
any_completion_handlerand compilation usingBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT. - Added missing equality operators for comparing mixed executor property types belonging to the same category.
-
Fixed an issue where
spawn-based stackful coroutines would terminate the program when used with asynchronous operations that have a completion signature starting withstd::exception_ptr. -
Fixed a crash that may occur when attempting to access a default-constructed
any_completion_handlerobject's associators. -
Fixed
ssl::stream<>class'sasync_handshakeoperation so that it works with a defaulted completion token. - Updated all examples to use C++11 as the minimum language standard.
-
Atomic:
- C++03 is no longer supported, the minimum required language version is C++11.
- Added support for x87 extended double with reduced precision, which is used on FreeBSD and OpenBSD. (#14)
- Support for Windows versions older than Windows 10 is deprecated and will be removed in Boost 1.87.
-
Beast:
-
Support for
immediate_executor. - Remove deprecated allocation and invocation hooks.
- Use the explicit type std::size_t when completing transfer_op.
-
Replaced
BOOST_ASIO_INITFN_RESULT_TYPEwithBOOST_ASIO_INITFN_AUTO_RES. -
server-flex-awaitableexample resets parser. -
Corrected the
websocket::stream::async_ping/ponghandler requirement. -
Update documentation for
websocket::stream::async_write_some.
-
Support for
-
Chrono:
- C++03 is no longer supported.
-
ContainerHash:
- C++03 is no longer supported.
-
Conversion:
- C++03 is no longer supported PR#27.
-
Core:
-
boost::swaputility function has been renamed toboost::core::invoke_swapto avoid forming a potential infinite recursion when the arguments are not swappable. The new function is defined inboost/core/invoke_swap.hppand is functionally equivalent toboost::swap. The oldboost::swapname is preserved for backward compatibility but deprecated and will be removed in a future release. Itsnoexceptspecification has been removed to avoid compile errors caused by compile-time recursion.BOOST_ALLOW_DEPRECATED_SYMBOLSorBOOST_ALLOW_DEPRECATEDcan be defined to suppress deprecation warnings for the transition period. (#148) -
Headers
boost/swap.hpp,boost/utility/swap.hppandboost/core/swap.hppare deprecated and will be removed. Please, switch toboost/core/invoke_swap.hpp.BOOST_ALLOW_DEPRECATED_HEADERSorBOOST_ALLOW_DEPRECATEDcan be defined to suppress deprecation warnings.
-
-
CRC:
- C++03 support is deprecated and will be removed in release 1.86.
-
DLL:
- C++03 is no longer supported PR#66.
-
Endian:
- C++03 is no longer supported.
-
Filesystem:
- As was announced in Boost 1.82.0, C++03 is no longer supported. A C++11 or later compiler is required.
-
Fixed that some
directory_entryobservers takingerror_code& ecargument did not clear the error code on successful return. (#291) - On Windows, improved robustness of date and time conversion and added support for dates before January 1, 1970. (#293)
- Removed support for Windows CE that was deprecated since Boost.Filesystem 1.79.0.
-
Removed
boost/filesystem/string_file.hppheader. The header was deprecated since Boost.Filesystem 1.79.0. - Deprecated: Support for Windows versions older than Windows 10 is deprecated and will be removed in Boost 1.87.
- Geometry:
-
Heap:
- C++03 support is deprecated and will be removed in release 1.86. New requirement will be C++14.
-
JSON:
- Implement parsing directly into user types.
- Add conversion categories for optionals and variants.
- Relax iterator requirements for constructors from iterator pairs.
- Fix reading beyond input buffer.
- Fix inconsistent choice of init list constructor.
-
LEAF:
- class result<T> marked nodiscard.
- Added member typedef result<T>::value_type.
- verbose_diagnostic_info defers conversion to string until an error handling scope is reached.
- Improved support for embedded development.
- Improved Visual Studio 2015 compatibility (thanks godmaycrying).
- Minor bug fixes an improvements.
- Dropped support for GCC 4.8 and 4.9.
-
LexicalCast:
- C++03 is no longer supported PR#62.
- Fixed -Wdeprecated-copy-with-dtor warnings with clang. Thanks to Romain Geissler for the PR PR#59!
- Dropped dependency on Boost.Range PR#63.
-
Locale:
-
to_titlefor the WinAPI backend returns the string unchanged instead of an empty string -
Improved support for
char8_tandstd::u8string - Fix off-by-one error when using negative times PR#198
- Fix escape-handling of curly braces in format strings #194
- Fix some build errors and warnings, notably one on MSVC, see #189
-
-
Lockfree:
- C++03 support is deprecated and will be removed in release 1.86. New requirement will be C++14.
-
Log:
- C++03 is no longer supported. A C++11 or later compiler is required.
- When built with C++11 compilers that are conforming enough for Boost.Regex v5 to be used, Boost.Log no longer links with Boost.Regex prebuilt library, since Boost.Regex v5 is header-only.
- Support for Windows versions older than Windows 10 is deprecated and will be removed in Boost 1.87.
-
Math:
- Improve ccmath error detection.
- Remove use of deprecated std::numeric_limits<>::has_denorm, see 1028.
- Correct non-convergence bug in non-central-t distribution, see 1035.
- Adjust Bessel function approximation to [sub 1]F[sub 1] to avoid taking tgamma at a negative integer, see 1034.
- Avoid spurious overflow and divide by zero in ibeta, see 1006.
- Improve accuracy when using Sterling's approximation to tgamma, completes work started in 1007.
- Fix inverse_discrete_quantile for large initial guesses, see 1007.
- Improve Newton root finding, see 1000.
- Fix median_absolute_deviation for non-zero centre, see 997.
- Fix up cstdfloat.hpp for gcc-14.
- Update to work for the new types declared in <stdfloat>.
- Change hypergeometric_distribution to use 64 rather than 32 bit integers to avoid unnecessary overflow and restrictions on use.
-
Multi-index Containers:
- Fixed a serialization-related compile-time bug in old compilers without ADL support (issue #70).
- Multiprecision:
-
MySQL:
-
Added
connection::reset_connectionandconnection::async_reset_connection. These functions clean session state (including prepared statements, variables, locks and more) without closing and re-opening the connection. - Added error codes introduced in MySQL server v8.1.0.
- Added fuzz testing for the deserialization functions.
-
Added
-
PFR:
-
Big new feature: field names reflection.
Added new
constexprboost::pfr::get_name<N, T>()function that returns astd::string_viewwith a name of field at indexNof an aggregateT. Requires C++20.BOOST_PFR_CORE_NAME_ENABLEDis defined to 1 if the functionality is available. Many thanks to Denis Mikhailov, Bela Schaum and X-Ryl669 for the PR PR#129 and implementation ideas. -
for_each_field()is nowconstexprfor C++17. Many thanks to Alexander Karatarakis for the PR PR#134.
-
Big new feature: field names reflection.
Added new
-
Predef:
- Version 1.15.0
- Add detection of Microsoft STL (from Henrik Gaßmann).
-
Random:
- C++03 is no longer supported.
- Fixed overflows in tests using Boost.Multiprecision
-
Ratio:
- C++03 is no longer supported.
-
Support for
BOOST_RATIO_EXTENSIONShas been removed. Ratio is now implemented in terms of the standard<ratio>header.
- Stacktrace:
-
System:
-
Added support for
result<U&, E>. -
Added
operator|forresult. -
Added
operator&forresult. -
Added
operator&=forresult.
-
Added support for
- Test:
-
Thread:
- C++03 is no longer supported.
-
TypeIndex:
- C++03 is no longer supported.
-
BOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS((A)(B)(C)(D))changed syntax toBOOST_TYPE_INDEX_REGISTER_RUNTIME_CLASS(A, B, C, D). - Dropped Boost.PP dependency.
-
TypeOf:
- C++03 is no longer supported.
-
Unordered:
- Major update.
-
Added
boost::concurrent_flat_set. -
Added
[c]visit_whileoperations to concurrent containers, with serial and parallel variants. -
Added efficient move construction of
boost::unordered_flat_(map|set)fromboost::concurrent_flat_(map|set)and vice versa. - Added bulk visitation to concurrent containers for increased lookup performance.
- Added debug-mode mechanisms for detecting illegal reentrancies into a concurrent container from user code.
- Added Boost.Serialization support to all containers and their (non-local) iterator types.
- Added support for fancy pointers to open-addressing and concurrent containers. This enables scenarios like the use of Boost.Interprocess allocators to construct containers in shared memory.
- Fixed bug in member of pointer operator for local iterators of closed-addressing containers (PR#221, credit goes to GitHub user vslashg for finding and fixing this issue).
-
Starting with this release,
boost::unordered_[multi]setandboost::unordered_[multi]maponly work with C++11 onwards.
-
variant:
- C++03 is no longer supported PR#107.
- Dropped Boost.Move and Boost.Bind dependencies.
-
Wave:
Fixed bugs:
- #188: Segmentation fault when "#pragma\n" is encountered
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 and Glen Fernandes managed this release.