非类型模板参数

205 篇文章 38 订阅 ¥9.90 ¥99.00
本文介绍了C++中的非类型模板参数,包括其定义、限制和使用示例。非类型参数可以是整型、指针或引用,但不能是浮点数、类或字符串。实参必须是编译时常量表达式。文章通过多个示例展示了非类型参数在函数模板、类模板以及模板模板参数中的应用。
摘要由CSDN通过智能技术生成

/*
模板除了定义类型参数,我们还可以在模板定义非类型参数。
什么是非类型形参?顾名思义,就是表示一个固定类型的常量而不是一个类型。
固定类型是有局限的,只有整形,指针和引用才能作为非类型形参,
而且绑定到该形参的实参必须是常量表达式,即编译期就能确认结果。

非类型形参的局限:
1.浮点数不可以作为非类型形参,包括float,double。具体原因可能是历史因素,也许未来C++会支持浮点数。
2.类不可以作为非类型形参。
3.字符串不可以作为非类型形参
4.整形,可转化为整形的类型都可以作为形参,比如int,char,long,unsigned,bool,short(enum声明的内部数据可以作为实参传递给int,但是一般不能当形参)
5.指向对象或函数的指针与引用(左值引用)可以作为形参
 
非类型实参的局限:
1.实参必须是编译时常量表达式,不能使用非const的局部变量,局部对象地址及动态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员乐逍遥

如果你觉得帮助了你,支持一下!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值