2012-07-01 119 views
0

我可以在我的頭文件開始時進行泛型函數聲明嗎?函數重載模板聲明

我可以做template<class t> t func(t);那麼專注,但
Template Specialization VS Function Overloading
說不要那樣做。

+1

您的問題不清楚。你在說什麼?聲明與定義?或專精與重載?你提供的鏈接是關於後者。但似乎你的問題可能是關於前者。這一切與「頭文件開頭的聲明」有什麼關係? – AnT

回答

1

首先,您可以肯定地聲明一個模板函數,然後定義它,並且/或者定義專門化。但...

功能專業化必須是完整專業化,也就是說,你不能部分專門化模板功能。現在,雖然實際上可以專門化函數模板,但提供超載可能有優點(和缺點),但在大多數情況下,它將是更好的選擇。

您可能想要讀這:http://www.gotw.ca/publications/mill17.htm