nont-type的模板参数,用的最多的地方就是创建模板时,传入一个数字来初始化模板内部初始化数组大小(或者创建其他指定类型的数据结构);
类似于这种:
tempalte<typename T,int n>
class test{
T temp[n];
...
}
其中的n就是干这个事情的,这种参数成为非类型(non-type)或者表达式参数;当然也可以用其他方法传进去,指针,引用,整型,枚举都可以;但是不能传入double值;在模板内部也不允许修改值和访问地址等。
优点:相比较于使用构造函数中,new 和delete 创建删除,new是在堆空间操作,速度慢;这种方式是直接在内存空间中创建,更快;
缺点:每种数组都需要生成自己的模板;
参考:c++ primer plus 第六版p577