namespace std {
struct unexpect_t {
explicit unexpect_t() = default;
};
inline constexpr unexpect_t unexpect{};
}
概要
unexpected_t
は、expected
コンストラクタにおいて、エラー値型のコンストラクタ引数を受け取って構築するためのタグ型である。
unexpected_t
型の定数unexpect
が提供される。
例
#include <cassert>
#include <expected>
#include <system_error>
int main()
{
std::expected<int, std::error_code> x{std::unexpect, ETIMEDOUT, std::system_category()};
assert(not x.has_value());
assert(x.error().value() == ETIMEDOUT);
assert(x.error().category() == std::system_category());
}
出力
バージョン
言語
- C++23
処理系
- Clang: 16.0 ✅
- GCC: 12.1 ✅
- ICC: ??
- Visual C++: ??