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

履歴 編集

concept
<execution>

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

namespace std::execution {
  template<class Sndr, class Rcvr>
  concept sender_to =
    sender_in<Sndr, env_of_t<Rcvr>> &&
    receiver_of<Rcvr, completion_signatures_of_t<Sndr, env_of_t<Rcvr>>> &&
    requires (Sndr&& sndr, Rcvr&& rcvr) {
      connect(std::forward<Sndr>(sndr), std::forward<Rcvr>(rcvr));
    };
}

概要

sender_toは、Sender型SndrReceiver型Rcvrと接続可能であることを表すコンセプトである。

#include <print>
#include <execution>
namespace ex = std::execution;

struct ValueReceiver {
  using receiver_concept = ex::receiver_t;

  void set_value(int v) && noexcept
  {
    std::println("{}", v);
  }
};

int main()
{
  // 値42を送信するSender
  ex::sender auto sndr = ex::just(42);
  static_assert(ex::sender_to<decltype(sndr), ValueReceiver>);

  // int値を受信して表示するReceiver
  ValueReceiver rcvr;

  // SenderとReceiverを接続
  ex::operation_state auto op = ex::connect(sndr, rcvr);
  // Operation Stateを開始
  ex::start(op);
}

出力

42

バージョン

言語

  • C++26

処理系

関連項目

参照