Метод error
Метод error класса expected возвращает
объект ошибки, который хранится в контейнере.
Метод не принимает параметров. Вызывать его следует
только в том случае, если контейнер не содержит
значения, то есть когда has_value возвращает
false. Если же в контейнере есть значение,
поведение метода не определено.
Синтаксис
expected.error()
Пример
Давайте создадим объект expected с ошибкой
и выведем ее на экран с помощью метода error:
#include <iostream>
#include <expected>
using namespace std;
int main()
{
expected<int, string> res = unexpected<string>("error");
if (!res.has_value()) {
cout << res.error() << endl;
}
return 0;
}
Результат выполнения кода:
"error"
Пример
Давайте создадим объект expected со значением
и проверим, что метод error не вызывается:
#include <iostream>
#include <expected>
using namespace std;
int main()
{
expected<int, string> res = 123;
if (res.has_value()) {
cout << res.value() << endl;
} else {
cout << res.error() << endl;
}
return 0;
}
Результат выполнения кода:
123
Пример
Давайте создадим объект expected с ошибкой
и выведем ее через переменную:
#include <iostream>
#include <expected>
using namespace std;
int main()
{
expected<int, string> res = unexpected<string>("failure");
string err = res.error();
cout << err << endl;
return 0;
}
Результат выполнения кода:
"failure"