我是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