曲径通幽论坛

标题: 什么是非类型参数或表达式参数? [打印本页]

作者: easy    时间: 2013-12-16 20:06
标题: 什么是非类型参数或表达式参数?
Q : 什么是非类型参数或表达式参数?

A :在声明一个类模板时,如有下面的形式:
  1. template <class T, int n>
复制代码
其中,关键字 class 指出 T 为参数类型,int 指出 n 的类型为 int 。这种参数(指定特殊的类型而不是用作范型名)称为非类型(non-type)或表达式(expression)参数。

表达式参数有一些限制,它可以是整型、枚举、引用或指针。因此,double n 是不合法的,但 double *pn 则是合法的。另外,模板代码不能修改参数的值,也不能使用参数的地址,比如不能使用如 n++ 和 &n 等表达式。还有,用作表达式参数的值必须是常量表达式。





欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2