template <class Sch, class Env>
concept infallible-scheduler =
scheduler<Sch> &&
(same_as<completion_signatures<set_value_t()>,
completion_signatures_of_t<decltype(schedule(declval<Sch>())), Env>> ||
(!unstoppable_token<stop_token_of_t<Env>> &&
(same_as<completion_signatures<set_value_t(), set_stopped_t()>,
completion_signatures_of_t<decltype(schedule(declval<Sch>())), Env>> ||
same_as<completion_signatures<set_stopped_t(), set_value_t()>,
completion_signatures_of_t<decltype(schedule(declval<Sch>())), Env>>)));
概要
infallible-schedulerは、scheduleによる非同期操作が停止要求されない限りset_valueによってのみ完了するScheduler型の要件を定義する説明専用のコンセプトである。
バージョン
言語
- C++26