std::optional<T>::value
提供: cppreference.com
<tbody>
</tbody>
constexpr T& value() &; constexpr const T & value() const &; |
(1) | (C++17以上) |
constexpr T&& value() &&; constexpr const T&& value() const &&; |
(2) | (C++17以上) |
*this が値を格納していれば、その格納されている値を指す参照を返します。
そうでなければ、 std::bad_optional_access 例外が投げられます。
引数
(なし)
戻り値
格納されている値を指す参照。
例外
*this が値を格納していない場合は std::bad_optional_access。
ノート
逆参照演算子 operator*() は、この optional が値を格納しているかどうかチェックしません。 そのため value() よりも効率が良いかもしれません。
例
Run this code
#include <optional>
#include <iostream>
int main()
{
std::optional<int> opt = {};
try {
int n = opt.value();
} catch(const std::bad_optional_access& e) {
std::cout << e.what() << '\n';
}
}
出力例:
bad optional access
関連項目
| 利用可能であれば格納されている値を返し、そうでなければ別の値を返します (パブリックメンバ関数) | |
| 格納されている値にアクセスします (パブリックメンバ関数) | |
(C++17) |
値を格納していない optional へのチェック付きアクセスを表す例外 (クラス) |