名前空間
変種

std::optional<T>::value

提供: cppreference.com
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ (C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
 
<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';
    }
}

出力例:

bad optional access

関連項目

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