Just in time for the holidays, a major new
Taylor Swift album Boost library release just dropped:
Release managers: Marshall Clow and Glen Fernandes
From the announcement:
- 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.
- Added the
consigncompletion token adapter, which can be used to attach additional values to a completion handler.
any_completion_handler<>, which can be used to type-erase completion handlers.
experimental::co_composedto enable lightweight implementations of user-defined asynchronous operations using C++20 coroutines.
- Add range-based
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
- Optimised representation of empty
execution::any_executorobjects to improve the performance of copy and move operations.
- Added an
- Changed I/O objects to return their executors by const reference.
- Changed associated to use deduced return types for all two-argument
spawnimplementation to catch unhandled exceptions and rethrow them outside of the spawned "thread".
spawnto ensure the completion handler is dispatched through the correct executor.
- Fixed cleanup of of terminal-state
co_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
- Fixed example code to not use the deprecated
- Fixed an ambiguity in
- Added a specialised channel implementation for the for
cancelled()public on the
- Added io_executor_type and get_io_executor to the
- Fixed implementation of
release()for Windows overlapped handles.
- Enabled deferred awaiting for
experimental::use_coro, and fixed allocator handling.
- Cleaned up
experimental::promiseand made it an asynchronous operation object.
deferoverloads on ability to require
- Changed descriptor implementation to fall back to
ENOTTYwhen setting non-blocking mode.
- Fixed Xcode deprecation warnings related to use of
- Fixed the arguments passed to
select_reactor::runwhen it is run on an internal thread.
- Fixed compilation errors when
- 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.
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 calls
- 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
end()member functions that return iterators) are now supported out of the box.
- Described structs and classes (those annotated with
BOOST_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.
empty_valuemembers are now marked as
fclose_deleter, a deleter that calls
std::fcloseon a pointer to
- Bit manipulation utilities in
boost/core/bit.hppnow explicitly require unsigned integers on input. (#129)
intinstead of a value of the input argument type. This follows resolution of LWG3656.
- To allow the inclusion of
members.hppwhen the option
-pedanticis used, the invocation of
BOOST_DESCRIBE_ENUMhas been moved from
modifiers.hppinto a separate header,
modifier_description.hpp. As a consequence,
modifiers.hppno longer includes
enum.hpp. Code that has been relying on this implicit inclusion may fail, and will need to be fixed to include
pathconstruction, assignment and appending from containers of characters, such as
std::list<wchar_t>, is deprecated in v3 and removed in v4. Please use string types or iterators instead.
boost/filesystem/path_traits.hppheader is deprecated and will be removed in a future release. The header contained implementation details of
pathand 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
- On Windows, fixed
weakly_canonicalfailing with an
ERROR_INVALID_FUNCTIONerror code if the path started with the "\\?\" prefix. (#247)
- Added support for
boost::container::string(as well as respective
pathconstructors, 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)
- Added support for associative sequences on
- 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::noncopyableare used from Boost.Core (PR#249)
- Major update.
- Added new
accumulators::fractionto compute fractions, their variance, and confidence intervals
- Added interval computers for fractions:
utility::wald_intervalwhich can compute intervals with arbitrary confidence level
utility::deviationtypes to pass confidence levels as probabilities or in multiples of standard deviation for all interval computers, respectively
- Fixed internal
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 another
- The result of post-incrementing an iterator based on
(it++)->foois equivalent to
(*it++).foo, which was supported before.
- Added rvalue ref-qualified accessors for
- Conversion traits were redesigned.
- Added conversion support for described classes and enums,
std::variant, and null-like types (including
- Added non-throwing conversion from
valueto user types.
- 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
-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
- Make the
wchar_ton Windows assume/use UTF-16 enconding
- Performance improvements: Make
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
- Fix int-overflow on negative roll of years in
- 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
- Fix build failure of tests on MSVC
- 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.
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
- Fix two ill-formed
iterator_interfaceoperators in pre-C++20 iterators with a
- The macro
BOOST_SYSTEM_DISABLE_THREADScan now be defined to disable the use of
<mutex>(e.g. on single-threaded libstdc++).
- Added support for