读书人

模板实参推演有关问题

发布时间: 2012-02-28 13:06:35 作者: rapoo

模板实参推演问题
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对模版支持不好.

读书人网 >C++

热点推荐