如何在C ++中将各种类型存储为一种类型?

时间:2014-09-04 12:00:32

标签: c++11 types

我的C ++现在有点生疏如此愚蠢的问题 - 如何将各种类型存储为一种类型?

我所拥有的是类型信息(不是C ++意义上的)和数据本身。第一个只是enum,数据可以是intvector<string>。我必须将它们存储在一个vector<T>中 - 而问题是T应该是什么? void*

稍后根据我的enum类型,我可以向下或向上转换数据,加载,保存,传递,没问题。

在C#中它将是object,但是C ++没有共同的根类型,而且我的类型也没有共同的根类型。

我使用C ++ 11。

2 个答案:

答案 0 :(得分:1)

您可以使用Boost Any完成此操作。

答案 1 :(得分:1)

如果您有已知类型的有界列表(如果唯一的数据类型是intvector<string>,则看起来就是这样做,一个好的选择是使用Boost Variant