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中的实现。