最終更新日時: 2026年06月08日 01時01分17秒 (JST)
yoh が更新

履歴 編集

concept
<execution>

# std::execution::receiver-of(C++26)

    namespace std::execution {
      template<class Rcvr, class Completions>
      concept receiver-of =
        receiver<Rcvr> && has-completions<Rcvr, Completions>;
    }

## 概要

`receiver-of`は、Receiver型 `Rcvr`が完了シグネチャ集合 `Completions`に適合することを表す説明専用のコンセプトである。

## 要件

説明専用コンセプト`valid-completion-for`, `has-completions`を以下のように定義する。

    template<class Signature, class Rcvr>
    concept valid-completion-for =
      requires (Signature* sig) {
        []<class Tag, class... Args>(Tag(*)(Args...))
          requires callable<Tag, remove_cvref_t<Rcvr>, Args...>
        {}(sig);
      };

    template<class Rcvr, class Completions>
    concept has-completions =
      requires (Completions* completions) {
        []<valid-completion-for<Rcvr>...Sigs>(completion_signatures<Sigs...>*)
        {}(completions);
      };

## バージョン

### 言語

- C++26

## 参照

- P2300R10 `std::execution`
- P4159R0 Make `sender_in` and `receiver_of` exposition-only