跳转到内容

C++ 语言/类型/变体/模板化变体

来自维基教科书,开放书籍,开放世界

一个类型为 std::variant<int,float,std::string> 的变量 xVar 可以存储一个值为 intfloatstd::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) 访问该值。

有关模板化变体的更多信息(包括交互式示例)

华夏公益教科书