【发布时间】:2011-01-23 22:55:54
【问题描述】:
在下面的代码中
#include<iostream>
template<typename T,size_t N>
void cal_size(T (&a)[N])
{
std::cout<<"size of array is: "<<N<<std::endl;
}
int main()
{
int a[]={1,2,3,4,5,6};
int b[]={1};
cal_size(a);
cal_size(b);
}
正如预期的那样,两个数组的大小都被打印出来了。但是 N 如何自动初始化为数组大小的正确值(数组是通过引用传递的)?上面的代码是如何工作的?
【问题讨论】:
-
“模板参数推导”是我正在寻找的。谢谢安德烈:)