namespace std::execution {
template<class... Domains>
struct indeterminate_domain {
indeterminate_domain() = default;
constexpr indeterminate_domain(auto&&) noexcept {}
};
}
概要
未確定な完了ドメインを表す。
説明専用の式COMMON-DOMAIN
部分式のパックdomains...としたとき、説明専用の式COMMON-DOMAIN(domains...)を、適格であるときcommon_type_t<decltype(auto(domains))...>()と等価な式とする。そうでなければ、Dsをdecltype(auto(domains))...から重複する型を除外したパックとして、indeterminate_domain<Ds...>()と等価な式とする。
説明専用の式COMPL-DOMAIN
型Tag、部分式sndr、パックenvs...としたとき、説明専用の式COMPL-DOMAIN(Tag, sndr, envs...)を、式が適格もしくはenvsが空のパックのときget_completion_domain<Tag>(get_env(sndr), envs...)と等価な式とする。そうでなければ、indeterminate_domain()と等価な式とする。
適格要件
Domains...の各型Dについて、式D().transform_sender(Tag(), std::forward<Sndr>(sndr), env)が不適格、もしくはdefault_domain().transform_sender(Tag(), std::forward<Sndr>(sndr), env)と同じdecayed型を持つこと。
メンバ関数
| 名前 | 説明 | 対応バージョン |
|---|---|---|
transform_sender |
Sender変換 | C++26 |
備考
型Dsのパックに対して、common_type_t<indeterminate_domain<Domains...>, indeterminate_domain<Ds...>>は、Domains...とDs...の各型を重複なく含むパックUsを持つindeterminate_domain<Us...>となる。型Dがindeterminate_domainの特殊化でないとき、common_type_t<indeterminate_domain<Domains...>, D>はDomainsが空のパックならD、そうでなければcommon_type_t<indeterminate_domain<Domains...>, indeterminate_domain<D>>となる。
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??