C++20 coroutine support.
Learn more: Coroutines
Classes | |
| class | pw::async2::CoroContext |
| Context required for creating and executing coroutines. More... | |
| class | pw::async2::Coro< T > |
| class | pw::async2::FallibleCoro< T, Handler > |
| class | pw::async2::Generator< T > |
Typedefs | |
| template<typename T , ReturnValuePolicy kPolicy = ReturnValuePolicy::kDiscard> | |
| using | pw::async2::CoroTask = FutureTask< Coro< T >, kPolicy > |
| template<typename T , typename Handler = Function<void()>, ReturnValuePolicy kPolicy = ReturnValuePolicy::kDiscard> | |
| using | pw::async2::FallibleCoroTask = FutureTask< FallibleCoro< T, Handler >, kPolicy > |
Functions | |
| template<typename Promise > | |
| pw::async2::Coro (internal::OwningCoroutineHandle< Promise > &&) -> Coro< typename Promise::value_type > | |
| template<typename T , typename Handler = internal::NoOpAllocFailureHandler> | |
| pw::async2::FallibleCoro (Coro< T > &&, Handler &&={}) -> FallibleCoro< T, std::decay_t< Handler > > | |
| template<typename T , typename Handler > | |
| pw::async2::FutureTask (Coro< T > &&, Handler &&) -> FutureTask< FallibleCoro< T, std::decay_t< Handler > > > | |
|
template<typename Handler > requires (!Future<std::decay_t<Handler>> && std::invocable<std::decay_t<Handler>> && !std::is_void_v<std::invoke_result_t<std::decay_t<Handler>>>) | |
| pw::async2::FutureTask (Handler &&) -> FutureTask< FallibleCoro< std::invoke_result_t< std::decay_t< Handler > >, std::decay_t< Handler > > > | |
| using pw::async2::CoroTask = typedef FutureTask<Coro<T>, kPolicy> |
A Task that runs a Coro<T> to completion and discards its return value by default.
CoroTask is an alias of FutureTask<Coro<T>, kPolicy>. Pass ReturnValuePolicy::kKeep (or use FutureTask<Coro<T>> directly) to store the coroutine's return value for use with Wait() or value().
Crashes if coroutine frame allocation fails. Use FallibleCoroTask to handle allocation failures gracefully.
| using pw::async2::FallibleCoroTask = typedef FutureTask<FallibleCoro<T, Handler>, kPolicy> |
A Task that runs a Coro<T> to completion, discards its return value by default, and invokes a handler if coroutine allocation fails.
FallibleCoroTask is an alias of FutureTask<FallibleCoro<T, Handler>, kPolicy>. Pass ReturnValuePolicy::kKeep (or use FutureTask<FallibleCoro<T, Handler>> directly) to store the coroutine's return value.