Функция make_optional
Функция make_optional создает и возвращает объект
std::optional,
содержащий переданное значение. В первый параметр мы передаем
значение, которое нужно поместить внутрь optional. Функция
удобна тем, что позволяет создать optional без явного указания
типа шаблона - тип выводится автоматически из переданного
аргумента.
Синтаксис
std::make_optional(value)
Пример
Давайте создадим объект optional с числом
42 и проверим, что значение присутствует:
#include <iostream>
#include <optional>
using namespace std;
int main()
{
auto res = make_optional(42);
cout << res.has_value() << endl;
cout << res.value() << endl;
return 0;
}
Результат выполнения кода:
1
42
Пример
Давайте создадим объект optional со строкой
"abcde" и выведем ее на экран:
#include <iostream>
#include <optional>
#include <string>
using namespace std;
int main()
{
auto res = make_optional("abcde"s);
cout << res.value() << endl;
return 0;
}
Результат выполнения кода:
"abcde"
Пример
Давайте создадим optional с символом
'a' и проверим его наличие:
#include <iostream>
#include <optional>
using namespace std;
int main()
{
auto res = make_optional('a');
if (res.has_value()) {
cout << res.value() << endl;
}
return 0;
}
Результат выполнения кода:
"a"