c++17--std::variant
作用
std::variant
是 C++17 引入的一个类型安全的联合体(union)替代品,它允许存储多种不同类型的值,但在任何时候只能存储其中一种类型的值。
案例
存储,判断存储类型,获取值。
#include <iostream>
#include <string>
#include <variant>int main() {std::variant<int, float, std::string> v;v = 42; // 存储 intv = 3.14f; // 存储 float// v = "hello"; // 存储 std::string// 访问值try {// auto s = std::get<std::string>(v);auto s = std::get<1>(v);std::cout << s << std::endl;} catch (const std::bad_variant_access &e) {std::cout << "Not a string:" << e.what() << std::endl;std::cout << "Current index: " << v.index() << std::endl;}// 检查当前存储的类型if (std::h