/*
模板除了定义类型参数,我们还可以在模板定义非类型参数。
什么是非类型形参?顾名思义,就是表示一个固定类型的常量而不是一个类型。
固定类型是有局限的,只有整形,指针和引用才能作为非类型形参,
而且绑定到该形参的实参必须是常量表达式,即编译期就能确认结果。
非类型形参的局限:
1.浮点数不可以作为非类型形参,包括float,double。具体原因可能是历史因素,也许未来C++会支持浮点数。
2.类不可以作为非类型形参。
3.字符串不可以作为非类型形参
4.整形,可转化为整形的类型都可以作为形参,比如int,char,long,unsigned,bool,short(enum声明的内部数据可以作为实参传递给int,但是一般不能当形参)
5.指向对象或函数的指针与引用(左值引用)可以作为形参
非类型实参的局限:
1.实参必须是编译时常量表达式,不能使用非const的局部变量,局部对象地址及动态
非类型模板参数
最新推荐文章于 2024-08-16 11:41:58 发布
本文介绍了C++中的非类型模板参数,包括其定义、限制和使用示例。非类型参数可以是整型、指针或引用,但不能是浮点数、类或字符串。实参必须是编译时常量表达式。文章通过多个示例展示了非类型参数在函数模板、类模板以及模板模板参数中的应用。
摘要由CSDN通过智能技术生成