1.當template parameters和call parameters之間沒有明顯聯系,而且編譯器無法推導出template parameters時,必須明確地再調用時指定template arguments
2.如果template parameters作為返回類型,那么也必須顯式地指定template parameters,不過你可以把這個返回類型放在template parameters的第一個位置,只指定第一template parameters,其他的讓編譯器去推導。
3.就像functions一樣,function templates也可以被重載。
4.在編譯的過程中,編譯器會根據每次具體使用的函數(帶有template的function),來生成具體的函數代碼實例。
5.在自變量推導過程中,惟有當參數不是一個reference類型時,array才會退化為pointer(通過稱為退化)。
6.function template或class template的implement必須放在.hw文件里。常規的編程方法是把function或class的declare放在.h的文件中,把implement放在.cpp中,對應declare的implement已經在編譯時生成了編譯符號,所以可以在運行時調用。而function template或class template不同,它要針對具體的template parameters去生成不同的實例,而這個過程不會去多次解析放在cpp中的實現。