namespace std {
class bad_optional_access : public exception;
}
概要
std::bad_optional_access
は、std::optional
クラスのオブジェクトの無効な値にアクセスした場合に発生する例外である。
メンバ関数
名前 | 説明 | 対応バージョン |
---|---|---|
bad_optional_access(); |
デフォルトコンストラクタ | C++17 |
virtual const char* what() const noexcept; |
エラー理由となる実装依存文字列 | C++17 |
例
#include <iostream>
#include <optional>
int main()
{
std::optional<int> p;
try {
p.value(); // 有効値を保持していないのに、有効値を取り出そうとした
}
catch (std::bad_optional_access& e) {
std::cout << "exception : " << e.what() << std::endl;
}
}
14
#include <iostream>
#include <optional>
int main()
{
std::optional<int> p;
try {
p.value(); // 有効値を保持していないのに、有効値を取り出そうとした
}
catch (std::bad_optional_access& e) {
std::cout << "exception : " << e.what() << std::endl;
}
}
出力例
exception : bad optional access
バージョン
言語
- C++17
処理系
- Clang: 4.0.1 ✅
- GCC: 7.2 ✅
- ICC: ??
- Visual C++: ??