Сложные пользовательские скалярные типы в библиотеке Eigen - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь получить пользовательский скалярный тип MyType, работающий в библиотеке Eigen. Пользовательский скалярный тип работает нормально, особенно преобразование в double, но в std::complex<MyType> я получаю следующую ошибку компилятора

eigen/Eigen/src/Core/MathFunctions.h:385:12: error: no matching function for call to 'std::complex<double>::complex(const std::complex<MyType>&)'
     return static_cast<NewType>(x);

, когда я пытаюсь использовать метод Эйгена cast для приведения матрицы в встроенный std::complex<double> тип

Eigen::Matrix<std::complex<MyType>, 2, 1> a;
a.cast<std::complex<double>>();

Этот вопрос связан с преобразованием типа из std :: complex в std :: complex , который, похоже, не имеет элегантное решение, которое можно интегрировать в библиотеку Eigen. Я могу только предположить, что Eigen предоставляет другой подход для приведения комплексных пользовательских скалярных типов.

...