读书人

关于非类型模板形参的有关问题!

发布时间: 2012-02-04 15:43:09 作者: rapoo

关于非类型模板形参的问题!!!
#include <iostream>
using namespace std;

template <class T,size_t N>
void array_init(T (&parm)[N])
{
for(size_t i=0; i!=N; ++i)
{
parm[i]=0;
cout < <i < < " ";
}
cout < <endl;

}

int main()
{
int ai[5];
array_init(ai);
return 0;
}
Compiling...
c0016.cpp
E:\wind\C++\C++ primer\c0016\c0016.cpp(126) : error C2265: ' <Unknown> ' : reference to a zero-sized array is illegal
E:\wind\C++\C++ primer\c0016\c0016.cpp(140) : error C2784: 'void __cdecl array_init(T (&)[1]) ' : could not deduce template argument for ' (&)[1] ' from 'int [5] '
执行 cl.exe 时出错.

c0016.exe - 1 error(s), 0 warning(s)


[解决办法]
vs2005 上没问题。如果用的是VC6 ,请扔之。
[解决办法]
template <class T,size_t N>
void array_init(T (&parm)[N])
这两句有问题
推倒不出来N
支持的不好

vc6不支持export

读书人网 >C++

热点推荐