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)
访问该值。