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

履歴 編集

customization point object
<execution>

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

namespace std::execution {
  struct start_t;
  inline constexpr start_t start{};
}

概要

startは、Operation State関連付けられた非同期操作(asynchronous operation)を開始するカスタマイゼーションポイントオブジェクトである。

効果

start(op)は、opが右辺値の場合は不適格となる。 そうでなければ、op.start()と等価。

op.start()Operation Stateに関連付けられた非同期操作を開始しない場合、式start(op)動作は未定義となる。

カスタマイゼーションポイント

Operation Stateopに対して式op.start()が呼び出される。 このときnoexcept(op.start()) == trueであること。

備考

startSender内部実装から呼び出される想定であり、実行制御ライブラリ利用者が直接利用する必要はない。

#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);
  // int値を受信して表示するReceiver
  ValueReceiver rcvr;

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

出力

42

バージョン

言語

  • C++26

処理系

関連項目

参照