template<sender Sender>
auto await_transform(Sender&& sndr); // (1)
template<class Sch>
auto await_transform(change_coroutine_scheduler<Sch> sch); // (2)
概要
タスクコルーチンにおけるco_await式の動作を制御する。 プログラマが本関数を直接利用することは想定されていない。
効果
- (1) :
same_as<inline_scheduler,scheduler_type> == trueならば、as_awaitable(std::forward<Sender>(sndr), *this)を返す。- そうでなければ、
as_awaitable(affine_on(std::forward<Sender>(sndr), SCHED(*this)), *this)を返す。
-
(2) : 以下と等価
return await_transform(just(exchange(SCHED(*this), scheduler_type(sch.scheduler))), *this);
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??
関連項目
execution::as_awaitableexecution::affine_onexecution::inline_schedulerexecution::change_coroutine_scheduler