170 похожих чатов

Как получить текущий тип который лежит в std::variant через visit?

Или можно как то по другому?

9 ответов

11 просмотров

std::variant<char, int, double> my_variant = 42; if (std::holds_alternative<int>(my_variant)) { .... }

Abdul-C Автор вопроса
Дима Жигальов
std::variant<char, int, double> my_variant = 42; ...

У меня в варианте больше двух типов, их там 20

Abdul C
У меня в варианте больше двух типов, их там 20

std::variant<int, double, std::string, char, long, float, short, bool, unsigned int, long long, unsigned long, unsigned char, unsigned short, unsigned long long, long double, int*, double*, std::string*, char*, const char*, void*> my_variant = std::string{"abcdef"}; if (std::holds_alternative<std::string>(my_variant)) { std::cout << "has string" << std::endl; }

variant.index();

Abdul-C Автор вопроса
Abdul C
Наркоман

В целом выглядит нормально, главное только успокоительное или ещё чего покрепче выпить перед прочтением

Идея std::visit именно в том, чтобы предоставить подсунуть реализации функции для каждого возможного типа, и не разбираться самому, какой именно тип там текущий :) В описании функции на cppreference.com есть хорошие примеры использования.

Abdul-C Автор вопроса
Anton Semenov
Идея std::visit именно в том, чтобы предоставить п...

Да это понятно, мне именно тип нужен был

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
76
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
@HemulGM Параметры у AddStream поменялись? Несостыковка какая-то
Катерина Свиридова
12
Карта сайта