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

履歴 編集

customization point object
<execution>

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

namespace std::execution {
  struct set_error_t { unspecified };  // タグ型

  inline constexpr set_error_t set_error{};
}

概要

set_errorは、非同期操作の失敗完了を表現するエラー(error)完了関数である。完了関数の呼び出しは完了操作と呼ばれる。

エラー完了関数には完了タグset_error_tが関連付けられ、完了操作のエラー完了シグネチャは戻り値set_error_tと1個の引数を持つ関数型として表現される。

効果

  • 引数rcvrが左辺値またはconst右辺値の場合、式set_error(rcvr, err)不適格となる。
  • そうでなければ、rcvr.set_error(err)と等価である。

例外

投げない

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

Receiver型の非const右辺値rcvrに対して式rcvr.set_error(err)が呼び出される。 このとき、noexcept(rcvr.set_error(err)) == trueであること。

備考

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

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

struct ErrorReceiver {
  using receiver_concept = ex::receiver_t;

  // エラー完了シグネチャ set_error_t(int)
  void set_error(int) && noexcept {}
};

int main()
{
  ErrorReceiver rcvr;
  ex::set_error(std::move(rcvr), 42);
}

出力

バージョン

言語

  • C++26

処理系

関連項目

参照