关于非类型模板形参的问题!!!
#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