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_error
はSender内部実装から呼び出される想定であり、実行制御ライブラリ利用者が直接利用する必要はない。
例
#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
処理系
- Clang: ??
- GCC: ??
- ICC: ??
- Visual C++: ??