Re[2]: std::get(std::variant)
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 23.10.25 19:27
Оценка:
Здравствуйте, rg45, Вы писали:

R>По-моему, во всех этих вариантах писанины будет существенно больше, чем при использовании std::visit. Для каждого типа варианта нужно написать энум, потом скастить к этому энуму индекс,


Генератор кода


R>потом этот энум запихнуть в какой-то switch и в конечном итоге, скорее всего, вызвать для каждого случая какую-то функцию. Ты же не будешь писать пласты кода прямо внутри switch-а.


Или не вызвать, а выйти из текущей


R>А через std::get твоя задача (УЗНАТЬ, что лежит в вариарианте) вообще не решается. Рассчитано на то, что ты сам знаешь, что лежит в варианте и вызываешь std::get с правильным индексом или типом, в противном случае получишь исключение.


ну да, для узнать это get_if или holds_alternative


R>Третий и четвёртый варианты — это проверить, а не узнать.


R>В общем, осваивай std::variant, и твоя жизнь сразу упростится.


Я как-то осваивал std::variant, пиша (пися? писая?) тулзу с использованием LLVM. Мягко говоря, осталось впечатление, что это полный п надо бы как-то попроще всё это
Маньяк Робокряк колесит по городу
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.