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

Смотрите также

возвращает содержащееся значение, если оно доступно, иначе другое значение
(публичная функция-член)
предоставляет доступ к содержащемуся значению
(публичная функция-член)
(library fundamentals TS)
исключение, указывающее на проверенный доступ к optional, не содержащему значения
(класс)