Version 1.76.0
Version 1.76.0
April 16th, 2021 21:05 GMT
| Platform | File | SHA256 Hash |
|---|---|---|
| unix | boost_1_76_0.tar.bz2 | f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41 |
| boost_1_76_0.tar.gz | 7bd7ddceec1a1dfdcbdb3e609b60d01739c38390a5f956385a12f3122049f0ca | |
| windows | boost_1_76_0.7z | 88782714f8701b6965f3fce087a66a1262601dd5ccd5b2e5305021beb53042a1 |
| boost_1_76_0.zip | 0fd43bb53580ca54afc7221683dfe8c6e3855b351cd6dce53b1a24a7d7fbeedd |
New Libraries
-
No new libraries
Updated Libraries
-
Asio:
-
Added
ip::scope_id_typetype alias. -
Added
ip::port_typetype alias. -
Added
std::hashspecialisations for IP addresses. -
Added
std::hashspecialisations forip::basic_endpoint<>. -
Refactored SFINAE usage to improve compile times.
-
Added friendship support to customisation points, and made most customisations private.
-
Changed
any_io_executorto a "strong typedef"-style class. -
Fixed
experimental::as_singleto work with handler hook deprecation. -
Ensured pthread condition variable attributes are cleaned up on all platforms.
-
Clarified thread safety notes on sockets and descriptors.
-
Ensured
errnois not overwritten ifsocket()fails on macOS/FreeBSD. -
Fixed work tracking for
io_contextandthread_poolexecutors when move-assigned. -
Ensured internal
call_stackobjects are accessed only from implementation files. -
Fixed I/O object move-assignment to ensure the executor is left in a valid state.
-
Fixed detection of compiler support for defaulted template argument on functions with MSVC.
-
Prevented the
blocking.alwaysproperty from being used withstrand<>, as it did not produce the correct semantics. -
Removed deprecated file asio/impl/src.cpp.
-
-
Beast:
-
This update brings minor bug fixes and revamped CI reporting.
-
We'd love to know how you or your company use Beast, consider adding an entry to the Companies and Individuals Using Beast list.
-
See the full Release Notes for a complete list of changes.
-
-
Bind:
-
Add support for using the standard C++11 placeholders with
boost::bind. -
Update
boost::applyto use variadic templates and perfect forwarding.
-
-
Container:
-
Added [[no-discard]] attribute in all containers to catch bugs related to unused return values.
-
Replaced default standard exception classes with Boost.Container own classes, reducing considerably the included files overhead. Example: in MSVC 19
boost/container/vector.hpppreprocessed file size reduces from 1,5MB to 930KB. If you still want to use standard exception classes, you can defineBOOST_CONTAINER_USE_STD_EXCEPTIONSbefore using any Boost.Container class. -
Fixed bugs/issues:
-
-
Core:
-
Add implicit conversion between compatible reference wrappers.
-
Add
boost/core/cmath.hpp, a portable implementation of the floating point classification functions from<cmath>. -
Add
boost/core/bit.hpp, a portable implementation of the C++20 standard header<bit>. -
Fix
BOOST_TEST_EQ,BOOST_TEST_NEfor character types under C++20. -
Revise allocator access utilities (now support VS2013, and no workarounds use
allocator_traits.)
-
-
DLL:
-
BREAKING CHANGE:
boost::dll::importwas renamed toboost::dll::import_symbolto avoid collision with C++20importkeyword. -
Updated docs, including FAQ section.
-
-
Filesystem:
-
Updated compatibility with WASI platform. (PR#169)
-
Fixed an exception being thrown by
path::remove_filenameif the path is "////". (#176) -
Fixed
create_directoriesdisregarding errors from file status query operations issued internally. This could result in incorrect error codes returned bycreate_directories. (#182)
-
-
Geometry:
-
Improvements
-
PR#670 New IOs to_wkt() and from_wkt() (thanks to Baidyanath Kundu).
-
PR#756 Non cartesian and robust convex hulls.
-
PR#768 Umbrella strategies for relops, setops, index, buffer and more (undocumented for now).
-
PR#797 New azimuth() algorithm.
-
PR#801 Improved accuracy in geographic area computations.
-
PR#820 Parameter scale added to svg_mapper.
-
-
Breaking changes
-
Removed strategy convex_hull::graham_andrew.
-
-
-
GIL:
-
BREAKING: In next release, we are going to drop support for GCC 5. We will also change the required minimum C++ version from C++11 to C++14.
-
-
Histogram:
-
This release contains critical fixes, please check that your results are not affected.
-
See Release Notes for details.
-
-
Intrusive:
-
Reduced compile-time dependencies:
-
linear_slist_algorithmsuse a simple node_ptr instead of std::pair on return. -
list/slistuseoperator </operator ==instead ofstd::equal_to/std::less.
-
-
-
Interprocess:
-
Added
wchar_tAPI support for named resources in operating systems that offer native wide character API (e.g. Windows). The following classes were updated withwchar_tname support:-
file_mapping -
managed_mapped_file -
managed_shared_memory -
managed_windows_shared_memory -
shared_memory_object -
windows_shared_memory_object -
file_lock -
named_condition -
named_condition_any -
named_mutex -
named_recursive_mutex -
named_semaphore -
named_sharable_mutex -
named_upgradable_mutex -
message_queue
-
-
Added
BOOST_INTERPROCESS_FORCE_NATIVE_EMULATIONmacro option to disable the use of generic emulation code for process shared synchronization primitives instead of native POSIX or Winapi functions. -
Fixed bugs:
-
-
JSON:
-
Security Report from Bishop Fox.
-
(#481) Refactored
value_fromimplementation; user customizations are now always preferred over library-provided overloads. -
(#484) Fix imprecise parsing for some floating point numbers.
-
(#485) Fix link errors in standalone mode, when used alongside Boost.
-
(#497) Fix Boost.Build builds on GCC 4.8.
-
-
Log:
-
Bug fixes:
-
Corrected a formal race condition in the thread-safe log record queue implementation used in the
unbounded_fifo_queuepolicy of theasynchronous_sinkfrontend. The race could be detected by TSAN, but it was not a real problem on most current CPU architectures and compilers. (#139) -
When copying a logger with a channel attribute (e.g.
channel_logger), the channel attribute is now deep-copied from the original logger. This means that modifying the channel in the new logger will no longer affect the original logger. -
Replaced the use of
std::allocator<void>in template parameters with a new tag typeboost::log::use_std_allocatorto silence libc++ warnings about the former being deprecated in C++17 and later. The tag indicates that the instantiated template should be using a specialization ofstd::allocatorinternally to allocate dynamic memory, so the change has no functional effect. (#141) -
Boost.Log no longer defines
__MSVCRT_VERSION__macro on MinGW and MinGW-w64. Defining this macro caused incompatibility with UCRT, which is available as an option in recent MinGW-w64. (PR#149)
-
-
See changelog for more details.
-
-
Math:
-
Breaking Change: C++03 support is now removed, a C++11 or later conformant compiler is now required to use this library.
-
Added Z-test.
-
Added execution policy support to univariate and bivariate statistics: enables parallel execution (requires C++17 and
<execution>). -
Big update/improvement on CI testing.
-
Bivariate statistics now have integer support.
-
T-Test now has integer support.
-
Linear regression now has integer support.
-
Correct PDF of the beta distribution at the endpoints.
-
Correct use of Stirling's approximation in certain multiprecision cases, fixes #396.
-
Eliminate -Wimplicit-int-float-conversion on clang.
-
Fix some constexpr issues in quaternion/octonion.
-
Minor performance fix to tanh_sinh integration.
-
Update hypergeometric functions internal scaling to allow for 64-bit (long long) exponents with multiprecision types.
-
-
Multiprecision:
-
BREAKING CHANGE: Massive refactoring and code simplification makes C++11 an absolute requirement.
-
Use BOOST_TRY/CATCH in headers so code can be used in exception-free environments.
-
Correct corner case in pow, fixes #277.
-
Correct exception type thrown to match docs in lsb/msb: fixes #257.
-
Allow moves and operators between related but different types (ie types with the same allocator), fixes #278.
-
-
Nowide:
-
Fix discarding of characters for text file streams when seek or sync functions are used and newlines were converted (e.g. on Windows)
-
Fix potential use-after-free bug when reusing (via
open) a file stream that has been closed -
Fix potential invalid memory access when using a file stream that has been moved or swapped to where the source had a put-back character or was set to unbuffered mode
-
Fix compatibility with ucrt runtime by not defining
__MSVCRT_VERSION__ -
Known issues: Read performance for text files is degraded. Binary files and writing is unaffected.
-
-
Optional:
-
Fixed MSVC warning C4702.
-
-
Outcome:
-
Announcements:
-
BREAKING CHANGE: After a year and three major Boost releases announcing this upcoming change, this is the FIRST RELEASE of the v2.2 branch. This branch has a number of major breaking changes to the Outcome v2.1 which shipped in Boost 1.75 and earlier, see the documentation for details.
-
-
Enhancements:
-
VS2019.8 changed how to enable Coroutines, which caused Outcome to not compile on that compiler.
-
If on C++ 20, we now use C++ 20
[[likely]]instead of compiler-specific markup to indicate when TRY has likely success or failure. -
BREAKING CHANGE: Previously the value of
spare_storage(const basic_result|basic_outcome *) noexceptwas not propagated overBOOST_OUTCOME_TRY, which causes things like stack backtraces captured at the point of construction of an errored result to get dropped at everyTRYpoint. This has been fixed by adding an optionalspare_storagetosuccess_type<T>andfailure_type<T>, as well as toauto success(T &&, ...)andauto failure(T &&, ...).
-
-
Bug fixes:
-
Boost.Outcome should now compile with
BOOST_NO_EXCEPTIONSdefined. Thanks to Emil, maintainer of Boost.Exception, making a change for me, Boost.Outcome should now compile with C++ exceptions globally disabled. You won't be able to useboost::exception_ptras it can't be included if C++ exceptions are globally disabled. -
BREAKING CHANGE #244 It came as a shock to learn that
BOOST_OUTCOME_TRYhad been broken since the inception of this library for certain corner case code, which required a breaking change in how TRY works. See the changelog in the documentation for more detail.
-
-
-
PFR:
-
Fixed reflection of types with missing
constin SFINAE expressions in template constructor. Now reflection of aggregates withstd::optional<std::chrono::duration<???>>fields works on any Standard Library implementation, even if LWG3050 is not fixed. -
Comparison functions are now
constexpr#52 -
Fixed numerous typos in docs (thanks to Phil Miller #63)
-
-
Predef:
-
Version 1.13
-
Add
ARCH_PPC_64predef. -
Fix
ARCH_WORD_BITS*redefinition warnings/errors. -
Add
ARCH_E2K, Elbrus 2000, architecture from Konstantin Ivlev. -
Fix not handling recent C++ version that go above 10.x version.
-
Version 1.12
-
Switch to using the endian.h header on OpenBSD. (Brad Smith)
-
Fix not handling recent versions of stdcxx that go above version 9.
-
Fix including sub-BSD OS headers directly causing redef warnings.
-
Add CI testing of direct inclusion of all headers.
-
Add CI testing on FreeBSD for clang and gcc.
-
Add
WORD_BITSset of predefs to detect the architecture word size. Initial implementation inspired by submission from Mikhail Komarov. -
Add CI testing for Cygwin 32 and 64.
-
-
PropertyTree:
-
Property Tree has a new maintainer.
-
Fix usage of deprecated Boost.Bind features.
-
Link to Wikipedia fixed.
-
Use BOOST_OVERRIDE to fix GCC warnings.
-
Add extensive CI testing.
-
-
Regex:
-
Regex is now header only except in C++03 mode.
-
Support for C++03 is now deprecated.
-
The library can now be used "standalone" without the rest of Boost being present.
-
-
TypeTraits:
-
Fix for Visual Studio managed code projects.
-
-
Variant2:
-
Improved generated code for the double buffered case.
-
Updated Tools
-
Build:
-
Includes release of B2 version 4.4.1.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Clang: 3.0, 4.0.1, 6.0.1
-
Clang, C++0x: 3.0
-
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0
-
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0
-
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0, 9.0.0, 10.0.0, 11.0.0
-
GCC: 4.4.7, 4.5.3, 4.6.3, 5.4.0, 8.0.1
-
GCC, C++0x: 4.4.7
-
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
-
GCC, C++14: 5.4.0, 5.5.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1
-
GCC, C++17: 7.3.0, 8.0.1
-
Intel, C++14: 18.0
-
-
OS X:
-
Apple Clang: 9.0.0, 9.1.0, 10.0.0, 11.0.0
-
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0, 11.0.0
-
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0, 11.0.0
-
Apple Clang, C++17: 9.1.0, 10.0.0, 11.0.0
-
Apple Clang, C++1z: 9.0.0
-
Apple Clang, C++2a: 10.0.0, 11.0.0
-
-
Windows:
-
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
-
GCC, C++0x: 4.6.4
-
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
-
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
-
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
-
-
FreeBSD:
-
Clang: 4.0.0
-
Clang, C++11: 4.0.0
-
Clang, C++14: 4.0.0
-
Clang, C++1z: 4.0.0
-
Boost's additional test compilers include:
-
Linux:
-
Clang: 3.0, 3.8.1, 3.9.1, 4.0.1, 5.0.2, 6.0.1
-
Clang, C++0x: 3.0
-
Clang, C++11: 3.0, 3.1, 3.2, 3.3, 3.4, 4.0.1, 6.0.1, 7.0.0, 8.0.0
-
Clang, C++14: 3.5.0, 3.6.0, 3.7.1, 3.8.0, 3.9.1, 4.0.0, 4.0.1, 5.0.2, 6.0.1, 7.0.0, 8.0.0
-
Clang, C++17: 5.0.2, 6.0.1, 7.0.0, 8.0.0
-
GCC: 4.4.7, 4.5.3, 4.6.3, 4.9.4, 5.4.0, 5.5.0, 8.0.1
-
GCC, C++0x: 4.4.7
-
GCC, C++11: 4.7.3, 4.8.5, 4.9.4, 5.4.0, 6.4.0, 7.1.0, 8.0.1
-
GCC, C++14: 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.3.0, 8.0.1, 8.1.0
-
GCC, C++17: 7.3.0, 8.0.1
-
Intel, C++14: 18.0
-
-
OS X:
-
Apple Clang: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++11: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++14: 9.0.0, 9.1.0, 10.0.0
-
Apple Clang, C++17: 9.1.0, 10.0.0
-
Apple Clang, C++1z: 9.0.0
-
Apple Clang, C++2a: 10.0.0
-
-
Windows:
-
GCC: 3.4.5, 4.1.2, 4.2.4, 4.3.3, 4.4.0, 4.5.4
-
GCC, C++0x: 4.6.4
-
GCC, C++11: 4.7.3, 4.8.1, 4.9.3
-
GCC, C++14: 5.1.0, 5.2.0, 5.3.0, 6.1.0, 6.2.0, 6.3.0, 6.4.0
-
GCC, C++17: 7.1.0, 7.2.0, 7.3.0
-
Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0, 14.1
-
-
FreeBSD:
-
Clang: 4.0.0
-
Clang, C++11: 4.0.0
-
Clang, C++14: 4.0.0
-
Clang, C++1z: 4.0.0
-
Acknowledgements
Marshall Clow, Michael Caisse and Glen Fernandes managed this release.
