C++ 语言/类型/变体/模板化变体
外观
一个类型为 std::variant<int,float,std::string> 的变量 xVar 可以存储一个值为 int 或 float 或 std::string 的值(一次只能存储其中一个)。因此,这个模板化变体变量是 C union 的现代替代方案。在赋值 xVar = 9.9F; 后,您知道该变量当前存储的是 float,因为 std::holds_alternative<float>(xVar) 返回 true,而 xVar.index() 返回 1(类型选项的基于 0 的索引)。可以通过 std::get<float>(xVar) 或 std::get<1>(xVar) 访问该值。