码迷,mamicode.com
首页 > 其他好文 > 详细

[013]模板-非类型模板参数

时间:2014-10-20 16:58:08      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   使用   sp   div   on   log   

在模板中,除了定义类型参数,我们还可以定义非类型参数。例如:

temlate<unsigned N, unsigned M>
int foo(const char (&p1)[N], const char (&p2)[M]) {
    return strcmp(p1,p2);
}

但是需要注意的是:编译器会在一个字符串字面常量的末尾插入一个空字符作为终结符。

例如我们调用

foo("hi", "mom");

实际上编译器会实例化如下版本

int foo(const char (p1)[3], const char (p2)[4]);

-----------

总结:在模板定义内,模板非类型参数是一个常量值。在需要常量表达式的地方,可以使用非类型参数,例如指定数组的大小等。

[013]模板-非类型模板参数

标签:style   blog   color   ar   使用   sp   div   on   log   

原文地址:http://www.cnblogs.com/hustcser/p/4037417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!