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

履歴 編集

customization point object
<execution>

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

namespace std::execution {
  struct just_error_t { unspecified };
  inline constexpr just_error_t just_error{};
}

概要

just_errorは、非同期操作開始(start)エラー完了関数を呼び出すSenderファクトリである。

効果

説明用のパックtsに対して、パックTsdecltype((ts))とする。下記いずれかの条件をみたすとき、呼び出し式just_error(ts...)不適格となる。

  • (movable-value<Ts> &&...) == false、もしくは
  • sizeof...(ts) == 1false

そうでなければ、呼び出し式just_error(ts...)は下記と等価。

make-sender(just_error, product-type{ts...})

Senderアルゴリズムタグ just_error

Senderアルゴリズム動作説明用のクラステンプレートimpls-forに対して、下記の特殊化が定義される。

namespace std::execution {
  template<>
  struct impls-for<decayed-typeof<just_error>> : default-impls {
    static constexpr auto start =
      [](auto& state, auto& rcvr) noexcept -> void {
        auto& [...ts] = state;
        set_error(std::move(rcvr), std::move(ts)...);
      };
  };
}

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

Receiverとの接続(connect)時に、関連付けられた実行ドメインに対してexecution::transform_sender経由でSender変換が行われる。 デフォルト実行ドメインでは無変換。

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

int main()
{
  // エラー(42)を送信するSender
  ex::sender auto sndr = ex::just_error(42);
}

出力

バージョン

言語

  • C++26

処理系

関連項目

参照