Собственная ошибка компиляции 3.3.4 на компиляторе MIPS (C++98)
Я компилирую Eigen 3.3.4 под компилятором MIPS C++ Multi-2000 (Green Hill). После того, как я решил проблему макроса выравнивания в 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" вызвать это?