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