1、template
//template parameter list2、模版形参可以表示类型形参,也可以表示常量表达式的非类型形参。
3、使用函数模版时,编译器会推断出哪个或哪些模版实参绑定到模版形参。一旦编译器确定了实际的模版实参,就称它实例化了函数模版的一个实例。
4、inline 只能放在template<>之后
5、类型形参也存在屏蔽问题。模版形参的名字只能在同一个列表中出现一次,但可以在不同的列表中出现。
6、typename和class没有区别,只是在老的版本中可能只能用class,在模版内部定义制定类型只能用typename。
7、非类型模版形参,可以返回数组的大小。如template int get_len(T (&a[N]){return N;}
8、编写代码时,对实参类型的要求应尽可能少。两个原则:模版的形参是const引用;函数体内的测试只用<比较。
阅读(2010) | 评论(0) | 转发(0) |