Метод value
Метод value класса expected возвращает
значение, которое хранится внутри объекта. Если объект
содержит ожидаемое значение, метод возвращает ссылку
на него. Если же объект содержит ошибку, метод генерирует
исключение bad_expected_access. Метод не принимает
параметров.
Синтаксис
expected.value()
expected.value() const
Пример
Давайте создадим объект expected, который содержит
значение, и выведем его на экран:
#include <iostream>
#include <expected>
using namespace std;
int main()
{
expected<int, string> exp = 42;
cout << exp.value() << endl;
return 0;
}
Результат выполнения кода:
42
Пример
Давайте создадим объект expected, который содержит
ошибку, и попробуем вызвать метод value. Это
приведет к генерации исключения:
#include <iostream>
#include <expected>
#include <string>
using namespace std;
int main()
{
expected<int, string> exp = unexpected("error");
try
{
cout << exp.value() << endl;
}
catch (const bad_expected_access<string>& e)
{
cout << "Exception: " << e.error() << endl;
}
return 0;
}
Результат выполнения кода:
"Exception: error"