◐ Shell
clean mode source ↗

std::optional<T>::value - cppreference.com

提供: 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() よりも効率が良いかもしれません。

#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';
    }
}

出力例:

関連項目