c++模板支持函数模板、类模板,这两种又都支持变参数模板
函数模板
函数模板声明和定义
声明
模板声明必须包含模板参数:
// 声明但是不定义compare和Blob
template<typename T> int compare(const T&, constT&);
template<typename T> class Blob;
与函数参数相同,声明中的模板参数的名字不必与定义中相同,但是一个给定模板的声明和定义必须有相同数量和种类的参数:
//声明
template<typename T> T calc(const T&, const T&);
template<typename U> U calc(const U&, const U&);
// 定义
template<typename Type>
Type calc(const Type& a, con