为什么英特尔C ++编译器会遇到Visual Studio 2013编译器看不到的错误?
错误是三种类型的错误:error: declaration is incompatible with
,例如
Error 8 error : declaration is incompatible with "void gauss<nzx,
iv>::myfun_new(const coef_struct<nf,
nzx> &, const inversion_controls_struct *, const
inversion_interOut_struct *, double *)"
(declared at line 139 of xxxx)
其中声明在头文件中,
template<int nzx, int iv> void gaussNewton<nzx,iv>::myfun_new(const
coef_struct<nf,nzx>& j,
const inversion_controls_struct *inv_Controls, const
inversion_inter_struct *inter, double* __restrict cob)
对于这个特殊情况有什么想法吗?与__restrict
关键字有关?更一般地说,是什么让一个编译器比另一个编译器更敏感?
修改
通过更多故障排除,我发现只有那些参数类型为
的方法template<int nf, int nzx> struct coef_struct{}
有麻烦,也就是说只有一个带有模板化结构类型的争论者的方法