【发布时间】:2014-12-09 03:59:02
【问题描述】:
我有一个模板类。由于模板是在编译时处理的,是否可以在编译时比较模板参数并使用预处理器添加特定代码?像这样的:
template<class T>
class MyClass
{
public:
void do()
{
#if T is equal to vector<int>
// add vector<int> specific code
#if T is equal to list<double>
// add list<double> specific code
#else
cout << "Unsupported data type" << endl;
#endif
}
};
如上例所示,如何在编译时将模板类型与另一种类型进行比较?我不想添加处理特定类型的特定子类。
【问题讨论】:
标签: c++ templates macros c-preprocessor typename