1函数模板可以允许以泛型的方式编写程序
template <typename name>
或 template <class name>
void swap( name & a, name & b)
{
name temp;
temp = a;
a = b;
b = temp;
}
2.这种写法有一定问题,当a为数组的时候,传入的参数是数组的地址。
3.函数模板并不会生成函数定义,当编译的时候,编译器才会生成一个实例。
4.关键字 decltype
template < class T1,class T2 >
void ft( T1 x, T2 y )
{
decltype( x + y ) xpy = x + y;
}
括号里面的( x+ y ) 是用来获取相加之后是什么类型,那么xpy就是什么类型。
可结合typedef来用
typedef decltype(x+y) xytype ;
xytype xpy = x+ y;