On 10/10/2019 23:51, Gavin Lambert via Boost wrote:
On 11/10/2019 02:25, Niall Douglas wrote:
- Support for C++ Coroutines has been added. This comes in two parts, firstly there is now an `OUTCOME_CO_TRY()` operation suitable for performing the `TRY` operation from within a C++ Coroutine. Secondly, in the header `outcome/coroutine_support.hpp` there are implementations of `eager<OutcomeType>` and `lazy<OutcomeType>` which let you more naturally and efficiently use `basic_result` or `basic_outcome` from within C++ Coroutines -- specifically, if the result or outcome will construct from an exception pointer, exceptions thrown in the coroutine return an errored or excepted result with the thrown exception instead of throwing the exception through the coroutine machinery (which in current compilers, has a high likelihood of blowing up the program). Both `eager<T>` and `lazy<T>` can accept any `T` as well. Both have been tested and found working on VS2019 and clang 9.
How hard would it be to also support Boost.Coroutine2?
Probably not particularly hard, though you'd need something like BOOST_OUTCOME_COROUTINE2_TRY(), which is rather a mouthful to constantly have to type. Niall