std::execution::just_error
| ヘッダ <execution> で定義 |
||
| inline constexpr just_error_t just_error{}; struct just_error_t { /* unspecified */ }; |
(C++26以降) (カスタマイズポイントオブジェクト) |
|
| 呼び出しシグネチャ |
||
| execution::sender auto just_error( auto&& error ); |
(C++26以降) | |
受信者の set_error() を呼び出して即座に完了する sender を返す sender ファクトリ。
入力エラーを表すサブ式 e があり、これが受信者によって注入され返されるとします。just_error(e) という式は、/* make-sender */(just_error, /* product-type */(e)) と 式等価です。
カスタマイゼーションポイントオブジェクト
execution::just_error という名前は、*カスタマイゼーションポイントオブジェクト* を表します。これは、`const` でリテラルな、semiregular なクラス型の関数オブジェクトです。その型の cv 修飾されていないバージョンは、execution::just_error_t という名前のタグ型です。
execution::just_error_t のすべてのインスタンスは等価です。同じ引数に対して異なる execution::just_error_t 型のインスタンスを呼び出す効果は、インスタンスを表す式が左辺値参照か右辺値参照か、また `const` 修飾されているかどうかにかかわらず等価です(ただし、`volatile` 修飾されたインスタンスは呼び出し可能である必要はありません)。したがって、execution::just_error は自由にコピーでき、そのコピーは相互に交換可能に使用できます。
型 Args... のセットが与えられた場合、std::declval<Args>()... が上記の execution::just_error への引数の要件を満たす場合、execution::just_error_t は以下をモデル化します。
- std::invocable<execution::just_error_t, Args...>,
- std::invocable<const execution::just_error_t, Args...>,
- std::invocable<execution::just_error_t&, Args...>、および
- std::invocable<const execution::just_error_t&, Args...>.
それ以外の場合、execution::just_error_t の関数呼び出し演算子はオーバーロード解決に参加しません。
[編集] 注記
提供されたエラーが左辺値参照の場合、返される sender 内にコピーが作成され、そのコピーへの非 `const` 左辺値参照が受信者の set_error に送信されます。提供された値が右辺値参照の場合、sender 内に移動され、その右辺値参照が受信者の set_error に送信されます。
[編集] 例
| このセクションは未完成です 理由: 例がありません |