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

履歴 編集

customization point object
<execution>

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

namespace std::execution {
  struct upon_error_t { unspecified };
  inline constexpr upon_error_t upon_error{};
}

概要

upon_errorは、入力Senderエラー完了操作の継続として関数呼び出しをアタッチし、戻り値データを正常完了として送信するSenderアダプタである。

upon_errorパイプ可能Senderアダプタオブジェクトであり、パイプライン記法をサポートする。

Senderアルゴリズムupon_errorの仕様は、thenページを参照のこと。

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

int main()
{
  { // 関数呼び出し
    ex::sender auto snd0 = ex::just_error(42);
    ex::sender auto snd1 = ex::upon_error(snd0, [](int err) {
      return err;
    });
    auto [v] = std::this_thread::sync_wait(snd1).value();
    std::println("{}", v);
  }

  { // パイプライン記法
    ex::sender auto sndr = ex::just_error(42)
      | ex::upon_error([](int err) {
          return err;
        });
    auto [v] = std::this_thread::sync_wait(sndr).value();
    std::println("{}", v);
  }
}

出力

42
42

バージョン

言語

  • C++26

処理系

関連項目

参照