我的C ++现在有点生疏如此愚蠢的问题 - 如何将各种类型存储为一种类型?
我所拥有的是类型信息(不是C ++意义上的)和数据本身。第一个只是enum
,数据可以是int
或vector<string>
。我必须将它们存储在一个vector<T>
中 - 而问题是T
应该是什么? void*
?
稍后根据我的enum
类型,我可以向下或向上转换数据,加载,保存,传递,没问题。
在C#中它将是object
,但是C ++没有共同的根类型,而且我的类型也没有共同的根类型。
我使用C ++ 11。
答案 0 :(得分:1)
您可以使用Boost Any完成此操作。
答案 1 :(得分:1)
如果您有已知类型的有界列表(如果唯一的数据类型是int
和vector<string>
,则看起来就是这样做,一个好的选择是使用Boost Variant。