| Platform | File | SHA256 Hash | |
|---|---|---|---|
| Unix | boost_1_82_0.tar.bz2 | a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6 a6e1ab9b08....5228597ee6 a6e1a....97ee6 | |
| boost_1_82_0.tar.gz | 66a469b6e608a51f8347236f4912e27dc5c60c60d7d53ae9bfe4683316c6f04c 66a469b6e6....3316c6f04c 66a46....6f04c | ||
| Windows | boost_1_82_0.7z | e72ff100482d4b371327b6c550dbd244d49c0186860ccc3b8c093dd621537e39 e72ff10048....d621537e39 e72ff....37e39 | |
| boost_1_82_0.zip | f7c9e28d242abcd7a2c1b962039fcdd463ca149d1883c3a950bbcc0ce6f7c6d9 f7c9e28d24....0ce6f7c6d9 f7c9e....7c6d9 | ||
| Windows (Binary) | boost_1_82_0-bin-msvc-all-32-64.7z | 592e0fc794aef4b8e2d071e0711afe77b48bd6167171dcc4d3062c870cee50fc 592e0fc794....870cee50fc 592e0....e50fc | |
| boost_1_82_0-msvc-10.0-32.exe | 1b643d2c8937bb74fdc6ddf65da4497474414ec7979527ef3550a4bdeb0b7815 1b643d2c89....bdeb0b7815 1b643....b7815 | ||
| boost_1_82_0-msvc-10.0-64.exe | 689cc3c7afffe27876c663db3d2933c05c28277e56ec0e7f9b92c93236a6eb21 689cc3c7af....3236a6eb21 689cc....6eb21 | ||
| boost_1_82_0-msvc-11.0-32.exe | fc319c04d1e38deffa5a07f817a12372fe56032e509ef8eccad1d4595c9d24f2 fc319c04d1....595c9d24f2 fc319....d24f2 | ||
| boost_1_82_0-msvc-11.0-64.exe | e0451cbaaf9b9a9111a78355926acedb5f99b1a7a3d60500ecff498b3dbac52d e0451cbaaf....8b3dbac52d e0451....ac52d | ||
| boost_1_82_0-msvc-12.0-32.exe | a0a16e8ca0372d098253f73be5161119a61cf96268f773c97b74b5b1e291ca1c a0a16e8ca0....b1e291ca1c a0a16....1ca1c | ||
| boost_1_82_0-msvc-12.0-64.exe | dbd1913514a4b48e2449832a2d238c9e5f270fd6f0e26479b90eaafc0370bb5f dbd1913514....fc0370bb5f dbd19....0bb5f | ||
| boost_1_82_0-msvc-14.0-32.exe | b581cf6c27c4b8e0d0410fbf98eedb86998db809b4c2be546d9540745e41f704 b581cf6c27....745e41f704 b581c....1f704 | ||
| boost_1_82_0-msvc-14.0-64.exe | 4fec87d4007577d74b83c0447dd90bdfc304f865da91261b3a6784dfbcb3d461 4fec87d400....dfbcb3d461 4fec8....3d461 | ||
| boost_1_82_0-msvc-14.1-32.exe | 36d7f310ff68bb48252dcb4d9ea6910a5fcba11b534a115908afe610b80c2418 36d7f310ff....10b80c2418 36d7f....c2418 | ||
| boost_1_82_0-msvc-14.1-64.exe | 2c17e5fe2b60009395e69c8ba4859fc891bf250d0af5b3e414215cfba3f69213 2c17e5fe2b....fba3f69213 2c17e....69213 | ||
| boost_1_82_0-msvc-14.2-32.exe | 4fb17a2cea5de56dde322029e02d516c954215d7e8333d5fd848649e516e140e 4fb17a2cea....9e516e140e 4fb17....e140e | ||
| boost_1_82_0-msvc-14.2-64.exe | 898a6b2df4edb842a4484a324849798952aa0ff2ca69fbf1fbf4cc0570b5d45e 898a6b2df4....0570b5d45e 898a6....5d45e | ||
| boost_1_82_0-msvc-14.3-32.exe | dcf9d87fa7bf68b5b6f744a4e9d426b6495920eb301ef94ecb0d4f7bc7a24d8c dcf9d87fa7....7bc7a24d8c dcf9d....24d8c | ||
| boost_1_82_0-msvc-14.3-64.exe | 492b4fbeb08c2e18b3825520e7381c219abe055a33993a23b0376f9f1365f94f 492b4fbeb0....9f1365f94f 492b4....5f94f | ||
This is an older version of Boost and was released in 2023. The current version is 1.89.0.
Version 1.82.0
April 14th, 2023 03:08 GMT
Known Issues
These are patches from library authors which were found too late to be fixed in the release.
- Filesystem
Notice of Dropping C++03 Support
The following libraries will be dropping C++03 support in release 1.84, two releases from now:
- Align
- Any
- Asio
- Atomic
- Bind
- Chrono
- ContainerHash
- Conversion
- DLL
- Endian
- Filesystem
- Function
- Functional
- Io
- LexicalCast
- Log
- Random
- Ratio
- SmartPtr
- System
- Stacktrace
- Thread
- Timer
- TypeIndex
- Typeof
- Unordered
- Variant
This release (1.82) and the next (1.83) will be the last releases offering C++03 support for the above libraries and most of their dependencies.
The new baseline requirement for the above libraries, and for most of Boost, will be C++11. Since old compiler versions often implement C++11 only partially, due to missing support or bugs, what compilers are considered to meet the C++11 requirement may vary by library.
However, a general rule is that if a compiler does not recognize a C++11 keyword
or syntax at all (e.g. use of noexcept,
use of constexpr, or defining
a =deleted
function results in an immediate compile error), or if a compiler does not
provide a required C++11 header at all (e.g. trying to include <atomic> or <chrono>
fails), or the compiler provides a C++11 feature or a header that is completely
unusable, this compiler is not considered a C++11 compiler.
This rules out, for instance, Microsoft Visual C++ before 14.0, or GCC before 4.8.
New Libraries
- Mysql:
- a C++11 client for the MySQL database server, based on Boost.Asio, from Ruben Perez.
Updated Libraries
-
Any:
-
Now uses
core/enable_if.hppheader instead of the deprecatedutility/enable_if.hpp. Thanks to Michael Ford for the PR PR#25.
-
Now uses
-
Asio:
- Added the ability to customise the execution of a completion handler when an operation completes immediately.
- Added user-defined literals for buffer types.
-
Added a new protocol type
local::seq_packet_protocolto representAF_UNIXwithSOCK_SEQPACKET. -
Exposed
sigaction()flags via an optional argument tosignal_set::add. -
Change
allocator_binder,executor_binder, andcancellation_slot_binderto support detection of unspecialised associators. -
Fixed ambiguity in
associated_cancellation_slot<reference_wrapper>::get(). -
Fixed
awaitable<>handling for completion signatures containingstd::exception_ptr. -
Fixed
experimental::channel<>try_sendfailure after acancel. -
Fixed
thread_pool::join()deadlock when the pool has no internal threads. -
Fixed pipe
release()when using io_uring. - Fixed data initialisation and cleanup issues in the io_uring backend.
-
Fixed a dangling reference issue in the execution context overload
of
get_associated_executor(). -
Ensured buffered messages can still be received when an
experimental::channel<>is closed. -
Fixed the
any_completion_handlerassignment operator. -
Constrained the constructor of
any_completion_handlerto prevent accidental copying -
Changed to use
uint64_tfor OpenSSL options, to match OpenSSL 3. -
Fixed
deferredinteroperability with multiple completion signatures. - Fixed channels to add partial support for C++11 and C++14.
-
Added missing handler tracking source location support to
co_composedand 'awaitable<>' coroutines, when awaiting packaged asynchronous operations. - Fixed some 'potential null dereference' and shadow variable warnings.
-
Fixed a
asio::bufferoverload selection when used withconst_buffers_1andmutable_buffers_1. - Disabled the runtime check for current Windows version unless targeting older Windows.
-
Fixed compatibility between buffered stream wrappers and move-constructible
streams, such as
ssl::stream<>. -
Fixed
basic_socket_acceptor::async_acceptcompatibility with lambdas that have a deduced return type. -
Fixed
as_tuplecompatibility with legacy completion tokens. -
Fixed
redirect_errorcompatibility with new completion tokens. - Fixed a potential, Windows-specific program termination due to exceptions that should have been allowed to escape from a destructor.
-
Prevented inadvertent
co_awaitof boolean expressions. -
Fixed result handling and support for custom allocators in
experimental::use_coro. -
Fixed variadic template emulation for
is_async_operationandcompletion_signature_of. -
Fixed incorrect reuse of a moved-from result in
experimental::promise. -
Fixed
experimental::corouse with custom allocators. -
Fixed
seek_curbehaviour with stream-oriented files on Windows. - Various additions and modifications to the documentation.
- Consult the Revision History for further details.
-
Atomic:
- When compiled for x86 targets supporting AVX, vector instructions are now used for 128-bit atomic loads and stores.
-
For 32-bit x86 targets, 64-bit atomic loads and stores with
memory_order_seq_cstsemantics will now issue a memory ordering instruction. -
Removed
atomic<T>::storage()accessors andatomic<T>::storage_typetypes that were deprecated in Boost.Atomic 1.73. Users are recommended to useatomic<T>::value()andatomic<T>::value_typeinstead.
-
Beast:
-
Add
error_codes use source_location - tcp_stream uses the correct executor of the timer.
- error_categories use numeric ids
-
file_bodysupports seek
-
Add
-
ContainerHash:
-
Added an overload of
hash_valueforstd::nullptr_t. -
Added
is_tuple_likeand an overload ofhash_valuefor tuple-like types. -
Changed string hashing to use
mulxp1_hash. This improves both quality and speed.
-
Added an overload of
-
Core:
-
Added
boost/core/snprintf.hppheader with portable definitions ofsnprintf,vsnprintfand theirwchar_tcounterparts. -
Deprecated
boost/core/is_same.hppandboost::core::is_same. The header will be removed in a future release. Users are advised to use Boost.TypeTraits or C++ standard library type traits instead. -
Marked
boost::refmember functions and associated methods withnoexcept. -
Marked
boost::swapfunction withnoexcept, depending on whether the type supports a non-throwing swap operation. -
Added
boost::core::launder, a portable implementation ofstd::launder. -
Added
BOOST_CORE_ALIGNOF, a portable implementation ofalignof. -
Added
boost::core::max_align_t, a portable equivalent ofstd::max_align_t, andboost::core::max_align, the alignment ofmax_align_t. -
Added
boost::core::memory_resource, a portable equivalent ofstd::pmr::memory_resourcefrom C++17. -
Added
boost/core/serialization.hpp, a collection of primitives allowing libraries to implement Boost.Serialization support for their types without including a Serialization header and thereby making their libraries depend on Serialization. -
Added
boost::data, an implementation ofstd::data. -
Added
boost::size, an implementation ofstd::size. -
Updated
boost::spanto useboost::datawhich adds support for range construction from anstd::initializer_list. -
Added
boost::identity, an implementation ofstd::identity. This facility has been moved from Boost.Functional.
-
Added
-
DLL:
- Avoid implicit cast from size_t to uint32_t, thanks to Travers Biddle for the PR PR#57.
-
Filesystem:
-
Fixed compilation errors that could have been caused by
pathconversion constructors being too permissive on the accepted arguments. (#273) -
v4:
path::remove_filenamenow presesrves the trailing directory separator. (#271) -
Added
path::remove_filename_and_trailing_separators, which removes the filename and directory separators preceding it from the path. This behavior is similar topath::remove_filenamein Filesystem v3, but is also usable in v4. -
Added
path::replace_filename, which replaces filename in a path. - Updated implementation of the library version selection to avoid ODR violations. (#279)
- On Windows, added a workaround for querying file attributes for files in SMBv1 shares. Previously, directories in SMBv1 shares could have been reported as regular files. This does not affect SMBv2 or later. (#282)
-
Fixed compilation errors that could have been caused by
-
Geometry:
-
Major improvements
- PR#1045 Support geographic buffer for (multi)linestrings and (multi)polygons
- Improvements
- Solved issues
-
Breaking changes
- The WKT output presentation of an empty polygon is now POLYGON() to make it consistent with other geometries
-
Major improvements
-
Histogram:
-
Replace
detail::spananddetail::make_spanwith implementations inboost::core - Documentation improvements
-
Protect usage of
std::minandstd::maxin some cases, contributed by Han Jiang (min,max macros are illegially set by popular Windows headers so we need to work around) - Added test to catch usage of unprotected min,max tokens in the library in the future
- Fixes to support latest clang-14 and deduction guides in gcc-11+
-
Replace
-
JSON:
-
set_at_pointer. -
boost::hashsupport. - Caller-provided serializer storage.
-
value_tosupports missing elements forstd::optional. - Fix parser suspend inside an escape character.
- Make sentinel() return a unique pointer.
-
-
Locale:
-
get_system_localeand dependents will now correctly favorLC_ALLoverLC_CTYPEas defined by POSIX PR#144 -
utf8_codecvt::outreturnspartialfor trailing (UTF) surrogates -
Add
boost::locale::util::locale_datato parse a locale -
boost::locale::info::encoding()result is now in uppercase as documented, e.g. "UTF-8" instead of "utf-8" -
Support M49 country codes such as
en_001oren_150PR#148 -
Treat
en_US_POSIXas an alias for theClocale PR#148 - Improve error for missing segmentation support (i.e. without ICU) PR#149
- Fix compiler warnings
-
-
Math:
- Deprecated C++11 support: We now require C++14 as a minimum standard. Our minimum tested compiler versions are now Clang-5, GCC-5 or MSVC-14.1.
- Added Estrin's method for polynomial evaluation.
- Fix various issues in non-central distributions to allow for larger non-centralities see 939.
- Added CMake install target.
- Fix special_functions.hpp to disable anything which can't be used in an exception-free environment.
- Get condition number calculation working in C++14.
-
Fix
constexprtable driven functions to avoid massive slowdown when the code is not actuallyconstexpr, see 923. - Improve tanh_sinh boundary handling, see 894.
- Add Linux arm64, s390x and Apple M1 testing, fix up test cases to handle 128-bit long doubles.
-
Improve
constexprmath functions to better handle infinities and NaN's. - Make the integrators const-correct.
- Fix tanh_sinh integrator in case the function underflows, see 898.
-
Don't use
std::cbrtas some platforms still don't support it. - Stop non-central T from raising spurious FE_INVALID exceptions, see 892.
- Fix binomial distribution edge case.
- Improve ibeta handling of very small arguments, see 884.
- Improve ibeta handling of infinities and NaN's, see 878.
- Improve error handling in powm1, see 781.
- Improve root-finder bracketing to bracket faster when the exponent is super-large or small.
- Fix root finding edge cases, see 873.
- Lots of miscellaneous warning fixes.
- Add assertions when using features which require C++17 for better error messages when invoking the compiler in a lower std version.
-
Multi-index Containers:
-
Serialization now uses
unsigned longinstead ofcollection_size_type, andmulti_index_containerserialization class version has been bumped from 2 to 3 to reflect this change. Reading old archives may fail for custom archive types giving special treatment tocollection_size_typevalues: if this is the case, globally define the macroBOOST_MULTI_INDEX_ENABLE_SERIALIZATION_COMPATIBILITY_V2to ensure backwards compatibility in reading operations. - Maintenance work.
-
Serialization now uses
-
Multiprecision:
- Deprecated C++11 support: We now require C++14 as a minimum standard. Our minimum tested compiler versions are now Clang-5, GCC-5 or MSVC-14.1.
- Added a new forward declaration header.
- Update Eigen interoperability so we no longer rely on Eigen's details, see 479.
- Add Cmake install target.
- Fix cpp_dec_float construction from string in standalone case for better error handling, see 499.
- Remove redundent definitions when in C++17 mode, see 530.
- Fix the error handling in standalone itrunc and ltrunc.
- Fix potentially uninitialized storage when parsing octal strings.
- Add arm64 and s390x CI testing.
-
Add some missing expression template unpacking code for
powm, see 506.
-
Nowide:
-
Add
convert_stringoverload accepting a (std::)string instance -
Add
quotedto output (quoted UTF-8) paths (std::filesystemorboost::filesystem) to streams PR#170
-
Add
-
PFR:
-
Implemented the
boost::pfr::is_implicitly_reflectableand the machinery for specializing aggregates as reflectable or not, thanks to Denis Mikhailov for the PR PR#111. -
Implemented
boost::pfr::getby type of an element in the aggregate. -
Implemented the
BOOST_PFR_ENABLEDmacro to detect library support for reflection, thanks to Denis Mikhailov for the PR PR#86. - Fixed missing terminating character, thanks to Denis Mikhailov for the PR PR#114.
-
Fixed the
boost/pfr/config.hppcompilation on older compilers, thanks to Denis Mikhailov for the PR PR#118. - Workaround for broken C++17 stuctured binding in old compilers, thanks to Denis Mikhailov for the PR PR#119.
- Avoid -Wzero-as-null-pointer-constant warnings, thanks to Markus F.X.J. Oberhumer for the PR PR#117.
- Fixed multiple typos, thanks to Denis Mikhailov for the fixes.
-
Added missing
#pragma once, thanks to caozhanhao for the PR PR#121. - Multiple fixes and improvements for the docs.
-
Implemented the
-
Process:
- Added management for extern processes to V2 (still experimental)
-
Deprecated
wait_for&wait_untilin V1 - they will be removed in the future!
-
Stacktrace:
- Fixed typos in docs and comments, thanks to Chocobo1 for the PR PR#132.
-
Fixed multithreading flag detection for
backtrace_create_stateifBOOST_STACKTRACE_BACKTRACE_FORCE_STATICis defined.
-
StaticString:
-
Boost.Core
string_viewandstd::string_viewinteroperability
-
Boost.Core
-
Test:
- Fixed several unused variable warnings
- Fixed sprintf deprecation warnings
-
Fixed undefined behavior in
basic_cstring::rfind - Added CI through Github Actions
-
Unordered:
- Major update.
-
Added node-based, open-addressing containers
boost::unordered_node_mapandboost::unordered_node_set. - Extended heterogeneous lookup to more member functions as specified in P2363.
- Replaced the previous post-mixing process for open-addressing containers with a new algorithm based on extended multiplication by a constant.
-
Fixed bug in internal
emplaceimpl where stack-local types were not properly constructed using the allocator of the container which breaks uses-allocator construction.
-
URL:
-
Add
url::formatwith automatic percent-encoding - URL router example
-
set_paramsconvenience function -
Support implicit conversions to
string_view - Parsing constructors are implicit
-
string_token::arghas virtual destructor and slice protection -
Support
BOOST_URL_DISABLE_THREADS -
Improvements and Bug fixes:
- WIN32_LEAN_AND_MEAN macro redefinition warning
- Comparison differentiates absent and empty components
-
Detect
hier_part_rulewith empty-port-like segments - Segments comparison as if normalized works above root
- hier-part path-rootless considers invalid segments
- port as number is set to 0 when it overflows
- ipv4 to string overflow detection algorithm
-
Add
-
Variant:
- Now uses core/addressof instead of the deprecated utility/addressof. Thanks to Michael Ford for the PR PR#105.
Updated Tools
-
Build:
- Includes release of B2 version 4.9.4.
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.