template<class Sndr, class Env>
constexpr auto get-domain-late(const Sndr& sndr, const Env& env) noexcept;
概要
SenderとReceiver間接続(connect)時のカスタマイゼーションポイントとして、実行ドメインを取得する説明専用の関数テンプレート。
下記の優先順で実行ドメインを検索し、最初に適格となる型を採用する。
(Senderアルゴリズムcontinues_on
のみ引数に指定したSchedulerから取得。)
- Senderの属性の実行ドメイン
- Senderの完了Schedulerの実行ドメイン
- Receiverの環境の実行ドメイン
- Receiver環境のSchedulerの実行ドメイン
- デフォルト実行ドメイン
効果
説明用の型Domain
を下記の通り定義したとき、return Domain();
と等価。
-
sender-for<Sndr, continues_on_t> == true
のとき、次のラムダ式呼び出し結果の型とする。[] { auto [_, sch, _] = sndr; return query-with-default(get_domain, sch, default_domain()); }();
-
それ以外のとき、下記リストのうち最初に適格となる式の型、かつ
void
ではない型とする。get_domain(get_env(sndr))
completion-domain<void>(sndr)
get_domain(env)
get_domain(get_scheduler(env))
default_domain()
例外
投げない
備考
Senderアダプタcontinues_on
はschedule_from
と連携して、実行コンテキスト遷移制御のカスタマイゼーションポイントをSchedulerに提供する。
バージョン
言語
- C++26