std::expected<T,E>::value
С ru.cppreference.net
| Основной шаблон |
||
constexpr T& value() &;
|
(1) | (начиная с C++23) |
constexpr const T& value() const&;
|
(2) | (начиная с C++23) |
constexpr T&& value() &&;
|
(3) | (начиная с C++23) |
constexpr const T&& value() const&&;
|
(4) | (начиная с C++23) |
void частичная специализация |
||
constexpr void value() const&;
|
(5) | (начиная с C++23) |
constexpr void value() &&;
|
(6) | (начиная с C++23) |
Если *this содержит ожидаемое значение, возвращает ссылку на сохранённое значение. Для частичной специализации void ничего не возвращает.
В противном случае генерирует исключение типа std::bad_expected_access<std::decay_t<E>>, которое содержит копию error().
1,2) Если
std::is_copy_constructible_v<E> равно false, программа считается некорректной.3,4) Если
std::is_copy_constructible_v<E> или std::is_constructible_v<E, decltype(std::move(error()))> равно false, программа считается некорректной.5) Если
std::is_copy_constructible_v<E> равно false, программа считается некорректной.6) Если
std::is_move_constructible_v<E> равно false, программа считается некорректной.Возвращаемое значение
1,2)
val
3,4)
std
::
move
(
val
)
Исключения
1,2,5)
Выбрасывает
std::
bad_expected_access
(
std::
as_const
(
error
(
)
)
)
если
*
this
содержит непредвиденное значение.
3,4,6)
Выбрасывает
std::
bad_expected_access
(
std
::
move
(
error
(
)
)
)
если
*
this
содержит непредвиденное значение.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Отчеты о дефектах
Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Applied to | Behavior as published | Correct behavior |
|---|---|---|---|
| LWG 3940 | C++23 |
E
не требовалось быть copy/move-constructible для перегрузок
(5,6)
|
требуется |
Смотрите также
|
возвращает ожидаемое значение, если оно присутствует, иначе другое значение
(публичная функция-член) |
|
|
предоставляет доступ к ожидаемому значению
(публичная функция-член) |
|
|
возвращает неожиданное значение
(публичная функция-член) |
|
|
(C++23)
|
исключение, указывающее на проверенный доступ к
expected
, который содержит неожиданное значение
(шаблон класса) |