【发布时间】:2020-06-07 10:21:46
【问题描述】:
假设我有课:
template<typename T>
class ChartData {
public:
...
现在我想检查对象 value 是否是 ChartData 对象:
if (value.type() == typeid(ChartData*))
但是这会导致错误
类模板的参数列表丢失
所以编译器希望我将类型放在 ChartData* 但是在这种情况下我对类型不感兴趣 - 我只想知道该对象是否是 ChartData 对象的实例。
这可能吗?如果有,怎么做?
【问题讨论】:
-
不是在运行时,不是。但是youtr 模板的基类呢?
-
没有
ChartData的实例没有,因为ChartData不是类型——它是用于创建类型的模板。模板的实例化是类型,但它们不相关,就好像你是手写出来的一样。
标签: c++ class templates types typeid