需求
假设有如下两个结构体
1 | struct A { |
两个结构体表示同一个对象,但这个对象可能在name
不同时具有不同的参数;
现在要用一个数组将其管理起来,如何实现?
实现
1 |
|
std::variant<A, B, int, double, float>
声明的对象可以直接将A/B/int/double/float
的值赋给它param.index()
可以获取类型下标,即在模板列表中类型的位置,从0开始- 通过
std::get<>(param)
可以获取对应类型的参数,模板里面可以是下标,也可以是类型:std::get<0>(param)
,数字0只能直接写,不能是变量std::get<A>(param)