std::variant и std::visit
Вопрос
Как обработать std::variant<int, std::string> в зависимости от хранимого типа?
Попробуйте сами
Ответьте про себя или вслух, потом откройте ответ и сверьтесь.
Показать ответ и разбор
Коротко
Ответ
std::visit с функциональным объектом, у которого перегрузки на все альтернативы, часто приёмом overloaded: std::visit(overloaded{[](int i){...}, [](const std::string& s){...}}, v);. Или std::holds_alternative<T> и std::get<T>/std::get_if<T>.
Разбор
std::visit с функциональным объектом, у которого перегрузки на все альтернативы, часто приёмом overloaded: std::visit(overloaded{[](int i){...}, [](const std::string& s){...}}, v);. Или std::holds_alternative<T> и std::get<T>/std::get_if<T>.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.