【发布时间】:2012-03-05 23:54:03
【问题描述】:
在 C# 中,我可以创建这样的 List 来存储类类型:
List<Type> types_list = new List<Type>();
types_list.add(typeof(int));
types_list.add(typeof(Process)); //and etc
我可以在 C++ 中做同样的事情吗?
【问题讨论】:
-
取决于您以后要如何处理这些类型。在 C++ 中,您有
typeid运算符,它返回type_info结构。所以,你可以拥有std::vector<type_info> v; v.push_back(type_id(Process)); etc.,但你以后对这些类型几乎无能为力 -
以后可以根据 type_info 创建它所描述的类的实例吗?在 C# 中:Activator.CreateInstance(typeof(Process));
-
我知道你正在尝试做这样的事情 :) 不,答案是否定的,你不能用
type_info来做。这需要大量的元编程,例如boost::mpl,但我无法详细说明 -
那太糟糕了!这破坏了我所有的计划。但是感谢您的帮助!
-
不要在代码中加入 html 格式,只需将其缩进 4 个空格,或者选择它并点击
{}按钮。