首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

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

2012-02-04 
关于非类型模板形参的问题!!!#includeiostreamusingnamespacestdtemplateclassT,size_tNvoidarray_in

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

热点排行