类模板中非类型参数的模板实参
来源:互联网 发布:北京奥运会开幕式 知乎 编辑:程序博客网 时间:2024/05/17 08:11
1,绑定给非类型参数的表达式必须是一个常量表达式,即,它必须能在编译时被计算出结果。
2,非 const 对象的值不是一个常量表达式,它不能被用作非类型模板参数的实参
3,名字空间域中任何对象的地址,即使该对象不是const 类型,是一个常量表达式,而局部对象的地址则不是。
4, sizeof表达式的结果是一个常量表达式,所以它可以被用作非类型模板参数的实参。
对于一个模板非类型参数,如果两个不同的表达式的求值结果相同,则它们被认为是等价的模板实参。
在模板实参的类型和非类型模板参数的类型之间允许进行一些转换,能被允许的转换集是函数实参上被允许的转换的子集:
1 左值转换:包括从左值到右值的转换,从数组到指针的转换,以及从函数到指针的转换。
2 限定修饰转换 例如:从 int* 到 const int* 的转换。
3 提升 例如:// 从 short 到 int 的提升
4 整值转换 例如:// 从 int 到 unsigned int 的转换。
把整型0 转换成指针值的转换是不允许的。
template <int *ptr>
class BufPtr { ... };
// 错误: 0 的类型是 int
// 不能通过 隐式转换 隐式地转换到空指针
BufPtr< 0 > nil;
- 类模板中非类型参数的模板实参
- C++ 类模板中非类型参数的模板参数
- 非类型形参的模板实参
- 非类型形参的模板实参
- 模板类型的模板参数
- 模板类型实参和非类型实参的使用 ----- 基于模板的函数指针的使用
- 模板实参的转换
- 关于模板的类型参数
- 非类型的模板参数
- C++语法基础--模板实参推断,模板类型形参的实参的受限转换,模板实参推断与函数指针
- 非类型模板类参数
- 非类型模板参数与 非类型类模板参数的使用
- 模板类型参数的类型推断
- 模板的模板参数
- 模板非类型参数
- 非类型模板参数
- 非类型模板参数
- 非类型模板参数
- 一些软件设计的原则
- 模型驱动和属性驱动
- hessian 入门错误解决
- 排序算法小小总结
- 最小圆覆盖,随机增量法.
- 类模板中非类型参数的模板实参
- hp unix下sqc环境安装
- 控制反转IOC与依赖注入DI
- sap pentest
- suse 11 配置ftp服务
- 快速排序(VS2010)的代码
- 最近滴日子相当充实啊..关于视频录制的帧率问题、opencv中文字以及部分很主观的算法唠嗑[2011.8.4]
- POJ1113
- 存储方式与介质对性能的影响