Введение в std::optional в C++
Значение или пустоту хранит std::optional: внутри лежит значение заданного типа или ничего - без указателей и без магических чисел.
Тип std::variant держит ровно один из нескольких
вариантов, а std::any - одно значение, чей
конкретный тип выбирается во время выполнения.
Подменять их сырыми указателями не стоит: библиотека
сама следит за состоянием. Для необязательного целого
подключите #include <optional>.
Запишем std::optional<int> с числом и выведем
его через «метод value»:
#include <optional>
std::optional<int> port = 8080;
std::cout << port.value() << "\n";
На экран попадает 8080 - внутри optional лежит
обычное целое, а не «дыра» в памяти.