Eigen_solver_traits не называет тип?

Я пытаюсь использовать пример кода реконструкции поверхности CGAL, как подробно Вот, все же, когда я пытаюсь использовать эту строку кода:

Poisson_reconstruction_function function(points.begin(), points.end(),CGAL::make_normal_of_point_with_normal_pmap(PointList::value_type()) );

Я получаю эту ошибку:

/usr/local/include/CGAL/Poisson_reconstruction_function.h: In member function ‘bool CGAL::Poisson_reconstruction_function<Gt>::compute_implicit_function(bool)’:
/usr/local/include/CGAL/Poisson_reconstruction_function.h:537:13: error: ‘Eigen_solver_traits’ does not name a type
typedef Eigen_solver_traits<Eigen::ConjugateGradient<Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver;

Кто-нибудь знает почему?

0

Решение

Эта конкретная ошибка обычно означает, что вам нужно добавить typename, Пытаться

typedef typename Eigen_solver_traits<Eigen::ConjugateGradient<Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver;
^^^^^^^^

или, возможно,

typedef Eigen_solver_traits<Eigen::ConjugateGradient<typename Eigen_sparse_symmetric_matrix<double>::EigenType> > Solver;
^^^^^^^^
1

Другие решения

Неважно, исправил это, убедившись, что CGAL_EIGEN3_ENABLED был включен. Однако еще раз спасибо за всю помощь!

0

При использовании cmake добавьте следующие строки в ваш файл CMakeLists:

find_package(Eigen3 REQUIRED)
include_directories( ${EIGEN3_INCLUDE_DIR} )

0
По вопросам рекламы [email protected]