Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[pull] master from boostorg:master #4

Merged
merged 25 commits into from
Jun 18, 2022
Merged

Conversation

pull[bot]
Copy link

@pull pull bot commented Jun 17, 2022

See Commits and Changes for more details.


Created by pull[bot]

Can you help keep this open source service alive? 💖 Please sponsor : )

ned14 and others added 25 commits January 27, 2022 18:46
…king change if you define your own status code domains.
…ypes for improved compatibility

with third party software such as [ASIO](https://think-async.com/Asio/).
…_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.
…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.
Merge branch 'develop'
- 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.
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.
@pull pull bot added the ⤵️ pull label Jun 18, 2022
@pull pull bot merged commit 338f8c4 into bazelboost:master Jun 18, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant