全部博文(17)
2008年(17)
分类: C/C++
2008-03-21 18:05:53
非类型(Non type)的类模板参数可以看作是类的参数化的一种形式。
template
class Stack {
private:
T elems[MAXSIZE];
…
在实例化时,MAXSIZE必须是常量,不能是变量。
函数模板实例化作为参数时要注意,函数模板是一组重载函数集合(即使这个集合只有一个元素),而重载函数的集合不能作为模板参数进行推导。必须将其转换为正确的函数类型。
非类型模板参数有一些限制。
浮点型和类对象,不能作为非类型模板参数。原因是?因为String常量是internal linkage的。
通常非类型模板参数是整型常量或是指向external linkage对象的指针。这又是为什么?