Namespaces
Variants

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

From cppreference.net
constexpr T & value ( ) & ;
constexpr const T & value ( ) const & ;
(1) (ライブラリファンダメンタルTS)
constexpr T && value ( ) && ;
constexpr const T && value ( ) const && ;
(2) (ライブラリファンダメンタル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 * this が値を保持していない場合にスローされます。

注記

間接参照演算子 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へのチェック付きアクセスを示す例外
(class)