函数模板在使用的时候不必指明类型。
注解:
- template<class T>里面的class 可以换成typename.
- T是什么都可以。
- 这样的函数模板的使用会比类模板更简单。类模板用的时候还要指定数据类型,函数模板在使用的时候不必指明它的type.即不必指明T是什么。为什么呢?因为函数模板在使用的时候一定是去调用,编译器会对function template 进行实参推导(argument deduction),自动推导出所调用函数的参数类型。假如推出来类型是stone,那么它会想,它能不能比大小呢?此时它会找有没有"<"号的重载,如果找不到小于号"<"的重载定义,那么就无法编译,或者说会编译报错。