namespace std::execution {
struct let_error_t { unspecified };
inline constexpr let_error_t let_error{};
}
概要
let_error
は、新しいSenderを返す関数呼び出し可能なオブジェクトに引き渡すことで、入力Senderのエラー完了結果から入れ子の非同期操作へと変換するSenderアダプタである。
let_error
はパイプ可能Senderアダプタオブジェクトであり、パイプライン記法をサポートする。
Senderアルゴリズムlet_error
の仕様は、let_value
ページを参照のこと。
例
#include <print>
#include <execution>
namespace ex = std::execution;
int main()
{
{ // 関数呼び出し
ex::sender auto snd0 = ex::just_error(21);
ex::sender auto snd1 = ex::let_error(
snd0,
[](int n) -> ex::sender auto {
return ex::just(n * 2);
});
auto [val] = std::this_thread::sync_wait(snd1).value();
std::println("{}", val);
}
{ // パイプライン記法
ex::sender auto sndr = ex::just_error(21)
| ex::let_error(
[](int n) -> ex::sender auto {
return ex::just(n * 2);
});
auto [val] = std::this_thread::sync_wait(sndr).value();
std::println("{}", val);
}
}
出力
42
42
バージョン
言語
- C++26
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??