最終更新日時(UTC):
が更新

履歴 編集

class template
<execution>

std::execution::indeterminate_domain(C++26)

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))...>()と等価な式とする。そうでなければ、Dsdecltype(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...>となる。型Dindeterminate_domainの特殊化でないとき、common_type_t<indeterminate_domain<Domains...>, D>Domainsが空のパックならD、そうでなければcommon_type_t<indeterminate_domain<Domains...>, indeterminate_domain<D>>となる。

バージョン

言語

  • C++26

処理系

関連項目

参照