名前空間
変種
操作

std::optional<T>::value

提供: cppreference.com
< cpp‎ | utility‎ | optional
 
 
 
 
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';
    }
}

出力例:

bad optional access

[編集] 関連項目

利用可能であれば格納されている値を返し、そうでなければ別の値を返します
(パブリックメンバ関数) [edit]
格納されている値にアクセスします
(パブリックメンバ関数) [edit]
値を格納していない optional へのチェック付きアクセスを表す例外
(クラス) [edit]