#include <iostream>
#include <variant>
#include <vector>
#include <string>
// 处理不同类型数据的函数
void processData(std::variant<int, double, std::string> var) {
if (std::holds_alternative<int>(var)) {
auto num = std::get<int>(var);
num += 1;
std::cout << "Processed int: " << num << std::endl;
} else if (std::holds_alternative<double>(var)) {
auto num = std::get<double>(var);
num = num * num;
std::cout << "Processed double: " << num << std::endl;
} else if (std::holds_alternative<std::string>(var)) {
auto str = std::get<std::string>(var);
std::cout << "Length of string: " << str.length() << std::endl;
}
}
int main() {
std::vector<std::variant<int, double, std::string>> container;
container.emplace_back(5);
container.emplace_back(3.14);
container.emplace_back("Hello, World!");
for (const auto& var : container) {
processData(var);
}
return 0;
}