Releases: ned14/outcome
All tests passed 33bbceb7e655cb937d426e38fdbd6a43388039d7
Update status-code to latest.
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed ad1823420c3de4e6aa28e6817c39e62f58b3917a
Merge pull request #269 from BurningEnlightenment/dev/system-status-code-fixes
Fix inclusion of system provided status code
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed c3dfcf4a6473e6a7770045ef41b3d82a95ce31da
Fix bad version in GA in last commit.
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
v2.2.4 Boost 1.80 release
v2.2.4 11th August 2022 (Boost 1.80) [release]
Enhancements:
-
Update to latest
status-code
in Experimental.Outcome, which has some breaking changes and important
bug fixes. -
Add {{<api "generator<T, Executor = void>" >}} to coroutine awaitables.
-
Add optional
Executor
template parameter to all Outcome awaitable types for improved compatibility
with third party software such as ASIO. -
To Experimental.Outcome add
clone()
forbasic_result
andbasic_outcome
types whoseEC
is
astatus_code
. Erased status codes are move-only which makes the Result/Outcome type move-only, but
they provide a cloning function, so this convenience function both clones the status code and propagates
the spare storage so stack backtraces etc are also cloned. -
Add type constraints to
success()
andfailure()
to disable them if they aren't available. -
Work around a bug in GCC's C++ Coroutines implementation whereby one gets an ICE from
gimplify_expr
in anyOUTCOME_CO_TRY
taking even a mildly complex expression, which obviously is a showstopper.
The work around assigns the failure type to a stack temporary beforeco_return
-ing that
temporary. Thanks to RVO pre-17 and copy elision since, this should add no runtime overhead.
Bug fixes:
#261
: Move assignable with move constructible not available did not work with void
.
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed f41376a02f315030ecd00d41a24854bda567faab
Work around a bug in GCC's C++ Coroutines implementation whereby one gets an ICE from `gimplify_expr`
in any `OUTCOME_CO_TRY` taking even a mildly complex expression, which obviously is a showstopper.
The work around assigns the failure type to a stack temporary before `co_return`-ing that
temporary. Thanks to RVO pre-17 and copy elision since, this should add no runtime overhead.
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed f0089908d8e36223c981cd888c4d74222aef1dd5
- To Experimental.Outcome add `clone()` for `basic_result` and `basic_outcome` types whose `EC` is
a `status_code`. Erased status codes are move-only which makes the Result/Outcome type move-only, but
they provide a cloning function, so this convenience function both clones the status code and propagates
the spare storage so stack backtraces etc are also cloned.
- Add type constraints to `success()` and `failure()` to disable them if they aren't available.
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed 2d2c444e36c2e8dfacfa758d3f3ffb180d9d27b2
Merge branch 'develop'
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed 6fc57091e67ee075bd67ce1a7831eb6a914009a9
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed 30340e17c63b7bacc23c24666cf5e1648477fd85
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies:
All tests passed 8aa81ac8d98c4b5fa2fc4a67fab1e7895dcead4d
Merge branch 'issue0261' into develop
Use the 'all-sources' tarball below, NOT the github generated one which is missing dependencies: