2014-09-04 63 views
-1

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

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

后来根据我的enum类型,我可以下载或上传数据,加载,保存,传递,这里没有问题。

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

我使用C++ 11。

+0

继承(例如,'B类')并且使用动态多态性(例如'vector ')。 – 101010 2014-09-04 12:09:05

+0

@ 40two,不可能,你不能重新定义int。另外,我没有定义类型,我只接收数据,我只需要请将它们存储在容器中 – greenoldman 2014-09-04 12:10:06

+1

如何[Boost any](http://www.boost.org/doc/libs/1_56_0/doc/html/any.html)? – 2014-09-04 12:12:54

回答

1

如果有已知类型的有限列表(它看起来像你这样做,如果只是数据类型intvector<string>,一个不错的选择将是从一个基类使用Boost Variant


+0

哈!谢谢。在我的情况下,它甚至比任何提升都好,因为事实上,我有限的,小的,事先知道的类型。 – greenoldman 2014-09-04 20:16:11

相关问题