我在Multi-2000(Green Hill)MIPS C ++编译器下编译Eigen 3.3.4。 在Macros.h中解决了一些对齐宏问题之后,我再次遇到了一些模板表达式的问题。 找到错误详细信息如下。我知道这应该是我的旧C ++编译器的一些问题,但任何能够提出解决方案的人都将非常感激。
"C:\Eigen/Eigen/src/Core/util/Meta.h", line 389
: error:
expression must have pointer-to-class type
template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()())>0)>::type * =
0);
^
"C:\Eigen/Eigen/src/Core/util/Meta.h", line 389
: error:
incomplete type is not allowed
template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()())>0)>::type * =
0);
^
所以问题必须在内部表达如下。但我真的无法理解。
template <typename C> static meta_yes testFunctor(C const *,typename enable_if<(sizeof(return_ptr<C>()->operator()())>0)>::type * = 0);
更新8/25 - &gt; “typename enable_if”是否导致这个?