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