在泛型编程中,数据的值和类型都被参数化。在第二次编译时,编译器会根据模板中的类型参数<实参.>去推导形参的值与类型;也就是说,模板不仅支持值的传递,还支持类型的传递,这就是模板与普通函数的最大区别了。
模板参数可以是数字型参数,也可以是类型参数;接下来我们以代码来说明什么是数值型模板参数?
1 template <typename T, int N> 2 void func() 3 { 4 T a[N]; // 使用模板参数定义局部数组; 5 } 6 7 func<double, 10>(); // 使用模板时,数值型参数必须是常量,不能是变量;