【发布时间】:2015-12-07 20:32:47
【问题描述】:
我想知道有没有办法识别模板参数?例如,假设我想根据模板参数初始化一个变量。原型示例如下
template<class T>
void initialise(T a)
{
if(T==int)a=0;
else if(T=double)a=0.0;
else if(T=complex<double>)a=T(0.,0);
else print("unknown type");
}
我的问题是如何识别模板参数“T”?或者,我需要借助预处理器指令吗?这可能是一个重复的问题,但我没有找到答案。任何形式的建议将不胜感激。
【问题讨论】:
-
为什么不能使用模板专业化来做到这一点?
-
你真的需要
print吗?还要注意你的函数没有任何作用。 -
不,我不需要打印。这只是一个例子。
-
@musafir 好的,那么我的回答可能适用。
标签: c++ templates arguments c-preprocessor