Eigen на ARM Cortex M3 с armcc

Я пытаюсь использовать библиотеку Eigen с компилятором armcc с использованием Keil для цели Cortex M3, и я получаю ошибку компиляции:

Eigen/src/Core/Transpositions.h(387): error:  #135: class template "Eigen::Transpose<Eigen::TranspositionsBase<Derived>>" has no member "derived"

Это происходит из этого кода:

class Transpose<TranspositionsBase<TranspositionsDerived> >
{
typedef TranspositionsDerived TranspositionType;
typedef typename TranspositionType::IndicesType IndicesType;
public:

explicit Transpose(const TranspositionType& t) : m_transpositions(t) {}

Index size() const { return m_transpositions.size(); }
Index rows() const { return m_transpositions.size(); }
Index cols() const { return m_transpositions.size(); }

/** \returns the \a matrix with the inverse transpositions applied to the columns.
*/
template<typename OtherDerived> friend
const Product<OtherDerived, Transpose, AliasFreeProduct>
operator*(const MatrixBase<OtherDerived>& matrix, const Transpose& trt)
{
// !!!!!!! this line triggers the error
return Product<OtherDerived, Transpose, AliasFreeProduct>(matrix.derived(), trt.derived());
}

/** \returns the \a matrix with the inverse transpositions applied to the rows.
*/
template<typename OtherDerived>
const Product<Transpose, OtherDerived, AliasFreeProduct>
operator*(const MatrixBase<OtherDerived>& matrix) const
{
return Product<Transpose, OtherDerived, AliasFreeProduct>(*this, matrix.derived());
}

const TranspositionType& nestedExpression() const { return m_transpositions; }

protected:
const TranspositionType& m_transpositions;
};

Я не очень хорош в магии шаблонов, поэтому мне интересно, как это должно работать.

Я не вижу методов, вызываемых производными в классе Transpose, он не наследуется ни от какого другого класса.
Единственный метод с таким именем находится в классе TranspositionsBase, который передается в Transpose в качестве параметра шаблона и, насколько я вижу, не используется.

Может кто-нибудь объяснить мне, что здесь происходит? И, если это возможно, почему возникает ошибка компиляции?

1

Решение

Задача ещё не решена.

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

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector