- expected[meta header]
- class[meta id-type]
- std[meta namespace]
- cpp23[meta cpp]
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());
}
- std::unexpect[color ff0000]
- ETIMEDOUT[link /reference/system_error/errc.md]
- C++23
- Clang: 16.0 [mark verified]
- GCC: 12.1 [mark verified]
- ICC: ??
- Visual C++: ??