我在 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 ->“typename enable_if”是否会导致这种情况?