Version 1.81.0
Version 1.81.0
December 14th, 2022 17:44 GMT
| Platform | File | SHA256 Hash |
|---|---|---|
| unix | boost_1_81_0.tar.bz2 | 71feeed900fbccca04a3b4f2f84a7c217186f28a940ed8b7ed4725986baf99fa |
| boost_1_81_0.tar.gz | 205666dea9f6a7cfed87c7a6dfbeb52a2c1b9de55712c9c1a87735d7181452b6 | |
| windows | boost_1_81_0.7z | d7bc4e2a2aee374a8c24832cacfed1265680c1e824d09fab3e00f87508155353 |
| boost_1_81_0.zip | 6e689b266b27d4db57f648b1e5c905c8acd6716b46716a12f6fc73fc80af842e |
New Libraries
-
URL: A library for parsing, modifying, and printing URLs using only C++11, from Vinnie Falco and Alan de Freitas. Features include fast compilation, strong invariants, and strict compliance using a memory-friendly approach.
Updated Libraries
-
Asio:
-
Added the
consigncompletion token adapter, which can be used to attach additional values to a completion handler. -
Added
any_completion_handler<>, which can be used to type-erase completion handlers. -
Added
experimental::co_composedto enable lightweight implementations of user-defined asynchronous operations using C++20 coroutines. -
Add range-based
experimental::make_parallel_group()overloads. -
Added
any_completion_executor, a type-erased wrapper for executors that are associated with completion handlers. -
Added missing
contextquery to use_future's executor. -
Added nothrow constructor overloads to
execution::any_executor<>andany_io_executor. -
Optimised representation of empty
execution::any_executorobjects to improve the performance of copy and move operations. -
Added an
associated_cancellation_slotspecialisation forstd::reference_wrapper. -
Changed I/O objects to return their executors by const reference.
-
Changed associated to use deduced return types for all two-argument
getfunctions. -
Fixed
spawnimplementation to catch unhandled exceptions and rethrow them outside of the spawned "thread". -
Fixed
spawnto ensure the completion handler is dispatched through the correct executor. -
Fixed cleanup of of terminal-state
spawn"thread" objects. -
Fixed
spawnandco_spawnimplementations to dispatch cancellation handlers on the correct executor. -
Changed semantics of 'dispatch' to mean the executor is used as-is.
-
Deprecated the
execution::executecustomisation point and sender/receiver facilities. -
Added a C++11
parallel_groupexample. -
Fixed example code to not use the deprecated
resolveconversions. -
Fixed an ambiguity in
experimental::channel_traitsspecialisations. -
Added a specialised channel implementation for the for
R(error_code)signature. -
Made
cancelled()public on theasync_compose'self' object. -
Added io_executor_type and get_io_executor to the
async_compose'self' object. -
Fixed implementation of
release()for Windows overlapped handles. -
Enabled deferred awaiting for
experimental::coro, regularisedexperimental::use_coro, and fixed allocator handling. -
Cleaned up
experimental::promiseand made it an asynchronous operation object. -
Constrained
post/deferoverloads on ability to requireblocking.never. -
Changed descriptor implementation to fall back to
fcntlifioctlfails withENOTTYwhen setting non-blocking mode. -
Fixed Xcode deprecation warnings related to use of
sprintf. -
Fixed the arguments passed to
select_reactor::runwhen it is run on an internal thread. -
Fixed compilation errors when
BOOST_ASIO_DISABLE_SMALL_BLOCK_RECYCLINGis defined. -
Updated detection of C++20 coroutine support on clang 14 and later.
-
Changed standard library feature detection to always enable
std::invoke_resultwhen targeting C++17 or later. -
Fixed detection of return type deduction with MSVC.
-
Updated the asynchronous operation requirements to relax the requirements on the associated executor.
-
Added io_uring to the implementation notes.
-
Consult the Revision History for further details.
-
-
Beast:
-
Add
buffers_generator -
Add
beast::http::message_generator -
Added
buffer_ref, so beast buffers can be used with asio. -
Support for per-operation cancellation
-
C++20 awaitable examples.
-
websocket per-message compression options
-
websocket timeout option api
-
multiple content length error
-
Support for default-completion and rebind
-
-
Container Hash:
-
Major update.
-
The specializations of
boost::hashhave been removed; it now always callshash_value. -
Support for
BOOST_HASH_NO_EXTENSIONShas been removed. The extensions are always enabled. -
All standard containers are now supported. This includes
std::forward_listand the unordered associative containers. -
User-defined containers (types that have
begin()andend()member functions that return iterators) are now supported out of the box. -
Described structs and classes (those annotated with
BOOST_DESCRIBE_STRUCTorBOOST_DESCRIBE_CLASS) are now supported out of the box. -
hash_combinehas been improved. -
The performance (and quality, as a result of the above change) of string hashing has been improved.
boost::hashfor strings now passes SMHasher in 64 bit mode. -
The documentation has been substantially revised to reflect the changes.
-
-
Core:
-
empty_valuemembers are now marked asconstexpr. -
Added
fclose_deleter, a deleter that callsstd::fcloseon a pointer tostd::FILE. -
Bit manipulation utilities in
boost/core/bit.hppnow explicitly require unsigned integers on input. (#129) -
bit_widthnow returnsintinstead of a value of the input argument type. This follows resolution of LWG3656.
-
-
Describe:
-
To allow the inclusion of
enumerators.hpp,bases.hpp, andmembers.hppwhen the option-pedanticis used, the invocation ofBOOST_DESCRIBE_ENUMhas been moved frommodifiers.hppinto a separate header,modifier_description.hpp. As a consequence,modifiers.hppno longer includesenum.hpp. Code that has been relying on this implicit inclusion may fail, and will need to be fixed to includeenum.hpp.
-
-
Filesystem:
-
Deprecated:
pathconstruction, assignment and appending from containers of characters, such asstd::vector<char>orstd::list<wchar_t>, is deprecated in v3 and removed in v4. Please use string types or iterators instead. -
Deprecated:
boost/filesystem/path_traits.hppheader is deprecated and will be removed in a future release. The header contained implementation details ofpathand should not be used in user's code. -
Previously deprecated APIs will now generate compilation warnings on use. To suppress these warnings,
BOOST_FILESYSTEM_ALLOW_DEPRECATEDmacro can be defined when compiling user's code. -
Fixed compilation due to a missing include on POSIX systems that do not support
*atAPIs. (#250) -
On Windows, fixed
weakly_canonicalfailing with anERROR_INVALID_FUNCTIONerror code if the path started with the "\\?\" prefix. (#247) -
Added support for
std::string_view,boost::string_viewandboost::container::string(as well as respectivewchar_tcounterparts) inpathconstructors, assignment and appending operations. (#208) -
pathconstructors, assignment and appending operations taking a pair of iterators will no longer accept iterators with value types that are not one of the supported path character types. -
On Windows, deduplicated files are now reported as regular files rather than reparse files. (#262)
-
-
Fusion:
-
Added
fusion::identity_view(PR#240) -
Added support for associative sequences on
fusion::transform_view(PR#239) -
Fixed compilation for the case when
fusion::reverse_viewused with an associative sequence (PR#237) -
Fixed Clang 13 -Wdeprecated-copy warnings (PR#261)
-
A small dependency reorganization. Now
boost::refandboost::noncopyableare used from Boost.Core (PR#249)
-
-
Histogram:
-
Major update.
-
Added new
accumulators::fractionto compute fractions, their variance, and confidence intervals -
Added interval computers for fractions:
utility::clopper_pearson,utility::wilson_interval,utility::jeffreys_interval,utility::wald_intervalwhich can compute intervals with arbitrary confidence level -
Added
utility::confidence_levelandutility::deviationtypes to pass confidence levels as probabilities or in multiples of standard deviation for all interval computers, respectively -
Fixed internal
sub_arrayandspanin C++20
-
-
Iterator:
-
function_output_iteratornow supports perfect forwarding of the assigned values to the wrapped function object. (PR#73) -
Fixed compilation of constructing a
function_input_iteratorfrom result of post-incrementing anotherfunction_input_iterator. (#75) -
The result of post-incrementing an iterator based on
iterator_facadenow supportsoperator->.(it++)->foois equivalent to(*it++).foo, which was supported before.
-
-
JSON:
-
Added
object::stable_erase. -
Added
parseoverload forstd::istreamandoperator>>forvalue. -
Added rvalue ref-qualified accessors for
value. -
Conversion traits were redesigned.
-
Added conversion support for described classes and enums,
std::optional,std::variant, and null-like types (includingstd::nullptr_t,std::nullopt_t, andstd::monotype). -
Added non-throwing conversion from
valueto user types.
-
-
Locale:
-
Major update with some breaking changes.
-
C++11 support is now required, support for C++03 and earlier is dropped
-
Some enums have been converted to enum classes - Avoids name clashes
-
Replace
-sICU_LINK_LOCALE&-sICU_LINKby fine-grained configuration options as done in Boost.RegEx -
Fix detection of libiconv allowing Boost.Locale to be build (again) on some platforms
-
Remove use of and support for
std::auto_ptr -
Make the
codecvtusingwchar_ton Windows assume/use UTF-16 enconding -
Performance improvements: Make
basic_format,date_time&hold_ptrmovable, Fix use of format cache -
Make Boost.Locale compatible with more ICU versions (especially the tests)
-
Fix RTTI definitions for some classes (visibility issues)
-
Fix compatibility of the ICU backend with some libc++ versions
-
Fix return value of some operators to correctly return non-const
*this -
Fix int-overflow on negative roll of years in
date_time -
Handle or suppress many warnings which makes the build log cleaner
-
Add support for more Windows codepages
-
Fix support for Windows codepages like ISO-2022-JP
-
-
Nowide:
-
Fix build failure of tests on MSVC
-
-
Stacktrace:
-
The library does not use COM initialization any more. Thanks to Alex Guteniev for the bug report, clarifications and PR PR#123!
-
The library now may use
BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILEmacro value while detecting the libbacktrace availability in b2, thanks to Ben Gemmill for the bug report #115. -
Added
BOOST_STACKTRACE_BACKTRACE_FORCE_STATICmacro to force a single backtrace_state static instance while using the libbacktrace. Thanks to the Rasmus Thomsen for the bug report #118! -
Avoid unresolved references when including only the
boost/stacktrace/stacktrace.hppheader. Thanks to the Long Deng for the bug report #116. -
Optimized stacktrace printing by not calling
strlenon Windows platforms. Thanks to Alex Guteniev for the bug report #122
-
-
PFR:
-
STLInterfaces:
-
Fix two ill-formed
iterator_interfaceoperators in pre-C++20 iterators with aconstvalue_type.
-
-
System:
-
The macro
BOOST_SYSTEM_DISABLE_THREADScan now be defined to disable the use of<mutex>(e.g. on single-threaded libstdc++). -
Added
value_type,error_type,in_place_value,in_place_errortoresult<>. -
Added
emplacetoresult<>.
-
-
Unordered:
-
Major update.
-
Added fast containers
boost::unordered_flat_mapandboost::unordered_flat_setbased on open addressing. -
Added CTAD deduction guides for all containers.
-
Added missing constructors as specified in LWG issue 2713.
-
-
Variant2:
-
Added support for
boost::json::value_fromandboost::json::value_to.
-
Compilers Tested
Boost's primary test compilers are:
-
Linux:
-
Clang: 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: 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: 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.
