std::experimental::optional<T>:: value
From cppreference.net
<
cpp
|
experimental
|
optional
|
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, не содержащему значения
(класс) |