/
rokhin
/
Small_test_programs_cpp
Обзор
Документация
Войти
/
rokhin
/
Small_test_programs_cpp
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
visitors.cpp
31 строка
792 B
sergeyrokhin
Начало
03 фев 2025, 13:36
03 фев 2025, 13:36
e354b68
Код
Авторство
О чём код?
#include <vector> #include <iostream> #include <string> #include <variant> #include <algorithm> #include <iomanip> template<typename ... Lambdas> struct Visitor : Lambdas... { Visitor(Lambdas... lambdas) : Lambdas(std::forward<Lambdas>(lambdas))... { } using Lambdas::operator()...; }; using var_t = std::variant<int, double, std::string>; int main(){ std::vector<var_t> vec = {10, 1.5, "hello"}; std::for_each(vec.begin(), vec.end(), [](const auto& v) { std::visit(Visitor{ [](int arg) { std::cout << arg << ' '; }, [](double arg) { std::cout << std::fixed << arg << ' '; }, [](const std::string& arg) { std::cout << std::quoted(arg) << ' '; } } , v); }); }