Nontype template parameters(非型别模板参数)

Nontype template parameters的局限

  • 通常来说它们只能是常数整数(const integral values),包括enum,或是【指向外部连接(external linkage)之物件】的指标
  • 浮点数或者class-type object 作为nontype template parameters是不可以的
template<deouble VAT> /*error, double is not a valid type for template parameter*/
double process(double v)
{
    return v * VAT;
}
template <const char* name>
class MyClass
{...}
const char* s = "hello";
MyClass<"hello"> x; /*error, cant't use string constant*/
MyClass<s> x; /*error, s is point to internal linkage*/

extern const char s1[] = "hello";
MyClass<s1> x; //OK
  • Templates parameters 不限只能是型别,也可以是数值
  • 你不能把浮点数、class-type物件、内部连接物件(internal linkage)当作nontype template parameters的引数
  • 什么是外部连接物件,什么是内部连接物件[http://blog.csdn.net/xiexievv/article/details/8487373]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值