我试图实现一个带有value
字段的C++类,它可以指向任何东西(有点像在boost :: any中)。目前,我做到以下几点:右键投给void *指针
class MyClass {
void* value;
template<typename T>
Myclass(const &T v) {
value = (void*)(new T(v));
}
};
现在的问题是实现创造内在价值与正确类型副本的getValue()操作:
template<typename T>
T getValue() {
return *value;
}
这不能因为我的工作试图解除一个void *指针。我想知道哪个类型的转换(static_cast?dynamic_cast?other ...)我应该使用*值正确转换为T对象,并且如果value本来不是这种类型,那么会引发异常?
感谢
可能的重复[我应该使用static_cast或reinterpret_cast当投下一个void *任何](http://stackoverflow.com/questions/310451/should-i-use-static-cast-or-reinterpret-cast-什么时候抛出无效) – Griwes 2012-08-11 14:50:45