曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 2295|回复: 0
打印 上一主题 下一主题

什么是非类型参数或表达式参数?

[复制链接]

716

主题

734

帖子

2946

积分

超级版主

Rank: 9Rank: 9Rank: 9

积分
2946
跳转到指定楼层
楼主
发表于 2013-12-16 20:06:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Q : 什么是非类型参数或表达式参数?

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

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

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-17 09:24 , Processed in 0.066510 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表