mirror of
https://github.com/boostorg/website.git
synced 2026-01-28 07:42:16 +00:00
Outcome notes.
This commit is contained in:
parent
f0824b18b4
commit
e50ee3d518
@@ -60,6 +60,16 @@ Please keep the list of libraries sorted in lexicographical order.
|
||||
* C++20 fixes for `event_comparison_type`, `vertex_equality_predicate_type`,
|
||||
and `voronoi_predicates`. (Glen Fernandes)
|
||||
|
||||
* [phrase library..[@/libs/outcome/ Outcome]:]
|
||||
* Announcements:
|
||||
* After a year and three major Boost releases announcing this upcoming change, this is the FINAL RELEASE of the v2.1 branch. From Boost 1.76 onwards, the v2.2 branch becomes the default. This branch has a number of major breaking changes to Outcome v2.1, see the documentation for details.
|
||||
* Enhancements:
|
||||
* The ADL discovered event hooks have been replaced with policy-specified event hooks instead. This is due to brittleness (where hooks would quietly self-disable if somebody changed something), compiler bugs (a difference in compiler settings causes the wrong hooks, or some but not all hooks, to get discovered), and end user difficulty in using them at all. The policy-specified event hooks can be told to default to ADL discovered hooks for backwards compatibility: set `OUTCOME_ENABLE_LEGACY_SUPPORT_FOR` to less than `220` to enable emulation.
|
||||
* Improve configuring `OUTCOME_GCC6_CONCEPT_BOOL`. Older GCCs had boolean based concepts syntax, whereas newer GCCs are standards conforming. However the precise logic of when to use legacy and conforming syntax was not well understood, which caused Outcome to fail to compile depending on what options you pass to GCC. The new logic always uses the legacy syntax if on GCC 8 or older, otherwise we use conforming syntax if and only if GCC is in C++ 20 mode or later. This hopefully will resolve the corner case build failures on GCC.
|
||||
* Bug fixes:
|
||||
* Boost.Outcome should now compile with `BOOST_NO_EXCEPTIONS` defined. 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 use `boost::exception_ptr` as it can't be included if C++ exceptions are globally disabled.
|
||||
* [@https://github.com/ned14/outcome/issues/236 #236] In the Coroutine support the `final_suspend()` was not `noexcept`, despite being required to be so in the C++ 20 standard. This has been fixed, but only if your compiler implements `noop_coroutine`. Additionally, if `noop_coroutine` is available, we use the much more efficient coroutine handle returning variant of `await_suspend()` which should significantly improve codegen and context switching performance.
|
||||
|
||||
* [phrase library..[@/libs/preprocessor/ Preprocessor]:]
|
||||
* When variadic data is empty in C++20 mode with __VA_OPT__ support the variadic size has been corrected to be 0.
|
||||
This also means that in this C++20 mode it is now valid to convert to and from empty arrays and lists and variadic data.
|
||||
|
||||
Reference in New Issue
Block a user