编译器用用户提供的实际特定类型代替Type,重新编写Queue类,在这个例子中,编译器将实例化三个Queue类
可以给模板形参赋予的唯一含义是 区别形参类型是 类型形参 或 非类型形参。
如果是类型形参, 我们就知道该形参表示未知类型,
如果是非类型形参,我们就知道他是一个未知值。、、、、
模板形参的名字可以在声明为模板形参之后知道模板声明或定义的末尾处使用。
在调用函数时,非类型形参将用值代替,值的类型在模板形参表中指定。
模板非类型形参是模板定义内部的常量值,在需要常亮表达式的时候,可以使用非类型形参。
当调用array_init时,编译器从数据实参计算非类型形参的值:
编译器将为array_init调用中用到的每种数据实例化一个arry_init版本。
类型等价性与非类型形参
对模板的非类型形参而言,求值结果相同的表达式将人为是等价的,下面的两个array_init调用引用的是
想听的实例--array_init< int, 42 >