ts-sender schedule();
概要
保持中SchedulerのスケジュールSenderを返す。
効果
schedule(SCHED(*this))で初期化されたSenderを保持する、説明専用のts-sender型オブジェクトを返す。
説明専用エンティティ
クラスts-sender
説明専用のクラスtask_scheduler::ts-senderは下記の通り定義される。
class task_scheduler::ts-sender { // exposition only
public:
using sender_concept = sender_t;
template <receiver R>
state<R> connect(R&& rcvr);
};
ts-senderはsenderのモデルであり、completion_signatures_of_t<ts-sender>は下記となる :
completion_signatures<
set_value_t(),
set_error_t(error_code),
set_error_t(exception_ptr),
set_stopped_t()>
説明用のschをtask_sender型のオブジェクト、sndrをschedule(sch)により得られるts-sender型のオブジェクトとする。get_completion_scheduler<set_value_t>(get_env(sndr)) == schはtrueとなる。オブジェクトSENDER(sndr)は、sndrまたは同オブジェクトからムーブ構築されたSenderオブジェクトとする。
template<receiver Rcvr>
state<Rcvr> connect(Rcvr&& rcvr) &&;
- 効果 :
rをreceiverのモデルである型のオブジェクトとし、その完了ハンドラはrcvrまたはそのコピーに対応する完了ハンドラを呼び出すものとする。connect(SENDER(*this), std::move(r))で初期化されたOperation Stateオブジェクトを保持するstate<Rcvr>型のオブジェクトを返す。
クラステンプレートstate
説明専用のクラステンプレートtask_scheduler::stateは下記の通り定義される。
template <receiver R>
class task_scheduler::state { // exposition only
public:
using operation_state_concept = operation_state_t;
void start() & noexcept;
};
stateの特殊化はoperation_stateのモデルである。
void start() & noexcept;
- 効果 :
stを*thisに含まれるOperation Stateオブジェクトとして、start(st)と等価。
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??