函数模板

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;

  

  

原文地址:https://www.cnblogs.com/penuel/p/11290392.html