get не всегда удобен, когда тип еще не проверен. Функция get_if возвращает указатель на значение нужного типа или nullptr, если тип другой.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpChGI 223 of 696 menu
◀ ▶

Мягкое чтение через std::get_if в C++

Жесткий get не всегда удобен, когда тип еще не проверен.

Функция get_if возвращает указатель на значение нужного типа или nullptr, если тип другой. Запишем variant с числом, возьмем указатель на int и выведем число через него:

#include <variant> std::variant<int, std::string> cell = 4; if (int* p = std::get_if<int>(&cell)) { std::cout << *p << "\n"; }

На экран попадает 4 - указатель не нулевой, значит внутри действительно целое.

Создайте std::variant<int, double> val с числом 1.5. Если «функция get_if» для double не nullptr, выведите разыменованное значение.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить