我是C++中使用模板的新手,我想根据<
和>
之间使用的类型做不同的事情,所以function<int>()
和function<char>()
不会做同样的事情。 我该如何做到这一点?获取模板函数类型
template<typename T> T* function()
{
if(/*T is int*/)
{
//...
}
if(/*T is char*/)
{
//...
}
return 0;
}
在你的情况,其中'T'无法从通话可以推断,专业有去(如答案建议)的方式。但是,如果你实际上在参数中使用了'T'并且推导出它,那么最好使用简单的重载和[避免函数模板特化](http://www.gotw.ca/publications/mill17.htm) 。 – Angew