模板实参推演问题
c++primer中的一段代码:
template <class Type,int size>
Type min(Type (&r_array)[size]){/*........*/}
void f(int pval[9])
{
int jval=min(pval);//错误:Type (&)[]!=int *
还有一段代码:
double da[8]={10.3,7.2,14.0,3.8,4.3,8.8,8.8,8.8}
int i1=min(da);//ok!
da和pval不都是指针吗,为什么一个可以一个不可以???
书上说为了匹配函数参数,函数实参必须也是一个表示数组类型的左值,我应该是没有理解这里,麻烦指点指点
[解决办法]
Q1:
void f(int pval[9])
==>
void f(int (&pval)[9])
Q2: 编译器问题,VC6.0对模版支持不好.