از std::variant استفاده کنید.به صورت زیر:
#include <iomanip>
#include <iostream>
#include <string>
#include <type_traits>
#include <variant>
#include <vector>
using var_t = std::variant<int, long, double, std::string>;
int main() {
std::vector<var_t> vec = {10, 15l, 1.5, "hello"};
for(auto& v: vec) {
std::visit([](auto&& arg){std::cout << arg<<std::endl;}, v);
}
}