- optional[meta header]
- std[meta namespace]
- class[meta id-type]
- cpp17[meta cpp]
namespace std {
class bad_optional_access : public exception;
}
- exception[link /reference/exception/exception.md]
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;
}
}
- std::bad_optional_access[color ff0000]
- std::optional[link optional.md]
- p.value()[link optional/value.md]
exception : bad optional access
- C++17
- Clang: 4.0.1
- GCC: 7.2
- ICC: ??
- Visual C++: ??