【发布时间】:2014-07-17 14:38:33
【问题描述】:
我是 C++ 新手。我想构造一个包含类型信息和对象值的类,这就是我所做的:
#include <typeinfo>
enum My_Type {
MyInteger = typeid(int); //ERROR
MyDuoble = typeid(double); //ERROR
MyBoolean = typeid(boolean); //ERROR
MyString = typeid(char *); //ERROR
}
template <typename T>
MyClass {
MyClass(T& Value) {
value = Value;
t = typeid(T);
}
T value;
My_Type t;
}
当我尝试将整数分配给我的 Enum 类型时,这会给我一个错误“常量表达式中不允许使用此运算符”..
我做错了什么?
有没有更优雅的方式来实现我想要做的事情,而不是使用 typeid()?
谢谢
【问题讨论】:
-
typeid不返回整数常量。 -
@chris 那么有没有办法获得 c++ 类型的唯一整数值?
-
我不知道。你打算用这门课做什么?
-
@chris 基本上是从数据库中检索数据并存储字段的类型和值
-
您应该查看
boost::variant以了解如何正确处理此类问题