// expected<cv void, E>部分特殊化
constexpr void value() const &; // (1)
constexpr void value() &&; // (2)
概要
正常値(void
)を取得する。
戻り値
なし
例外
- (1) : エラー値を保持していたら、例外
bad_expected_access(error())
をスローする - (2) : エラー値を保持していたら、例外
bad_expected_access(std::move(error()))
をスローする
例
#include <expected>
#include <iostream>
int main()
{
std::expected<void, int> x;
x.value();
std::expected<void, int> y = std::unexpected{42};
try {
y.value();
} catch (const std::bad_expected_access<int>& ex) {
std::cout << "throw:" << ex.error() << std::endl;
}
}
16
#include <expected>
#include <iostream>
int main()
{
std::expected<void, int> x;
x.value();
std::expected<void, int> y = std::unexpected{42};
try {
y.value();
} catch (const std::bad_expected_access<int>& ex) {
std::cout << "throw:" << ex.error() << std::endl;
}
}
出力
throw:42
バージョン
言語
- C++23
処理系
- Clang: 16.0 ✅
- GCC: 12.1 ✅
- ICC: ??
- Visual C++: ??