名前空間
変種
操作

std::experimental::optional<T>::value

From cppreference.com
 
 
 
 
 
constexpr T& value() &;
constexpr const T & value() const &;
(1) (Library Fundamentals TS)
constexpr T&& value() &&;
constexpr const T&& value() const &&;
(2) (Library Fundamentals TS)

格納されている値を返します。

1) return bool(*this) ? *val : throw bad_optional_access(); と同等です。
2) return bool(*this) ? std::move(*val) : throw bad_optional_access(); と同等です。

目次

[編集] パラメータ

(なし)

[編集] 戻り値

格納されている値への参照。

[編集] 例外

std::experimental::bad_optional_access: この optional に値が格納されていない場合。

[編集] 注記

デリファレンス演算子 operator*() は、この optional に値が格納されているかチェックしません。これは value() よりも効率が良い場合があります。

[編集]

#include <experimental/optional>
#include <iostream>
 
int main()
{
    std::experimental::optional<int> opt = {};
 
    try
    {
        int n = opt.value();
    }
    catch (const std::logic_error& e)
    {
        std::cout << e.what() << '\n';
    }
}

実行結果の例

optional<T>::value: not engaged

[編集] 関連項目

保持されている値が利用可能であればそれを返し、そうでなければ別の値を返す
(public member function) [編集]
保持されている値にアクセスする
(public member function) [編集]
(Library Fundamentals TS)
値を保持していない optional へのチェック付きアクセスを示す例外
(クラス) [編集]
English 日本語 中文(简体) 中文(繁體)