前言
前一节分析了关于template
的使用注意, 本节分析关于template
非类型参数的使用, 非类型参数可能在有些人认为并没有太大作用, 但是既然C++规定有能这样使用就肯定有其意义, 这里就做一个浅析.
非类型模板参数
非类型参数, 可用在模板中自定义为整型类型, 指针或引用, 不能定义为浮点数等其他类型.
非类型模板参数在编译期间就已经实例化, 所以其模板实参必须是常量表达式.
template<int N>; // N是编译时就确定的常量表达式
template<size_t N, size_t M>; // N,M是编译时就确定的常量表达式
可能就是会觉得没有用, 毕竟使用模板就是要用他的模板参数类型啊, 没有这个那还怎么用. 这里就来先看一个例子.
要求: 实现一个函数返回一个数组的真实大小, 如 : int a[100]; ArrSize(a);返回100
<