fix compilation when mixing CompactAffine with Homogeneous objects

This commit is contained in:
Gael Guennebaud 2011-03-02 19:27:13 +01:00
parent d30f0c0953
commit 703c8a0cc6

View File

@ -232,13 +232,15 @@ template<typename MatrixType,typename Lhs>
struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> > struct traits<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
{ {
typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType; typedef typename take_matrix_for_product<Lhs>::type LhsMatrixType;
typedef typename remove_all<MatrixType>::type MatrixTypeCleaned;
typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
typedef typename make_proper_matrix_type< typedef typename make_proper_matrix_type<
typename traits<MatrixType>::Scalar, typename traits<MatrixTypeCleaned>::Scalar,
LhsMatrixType::RowsAtCompileTime, LhsMatrixTypeCleaned::RowsAtCompileTime,
MatrixType::ColsAtCompileTime, MatrixTypeCleaned::ColsAtCompileTime,
MatrixType::PlainObject::Options, MatrixTypeCleaned::PlainObject::Options,
LhsMatrixType::MaxRowsAtCompileTime, LhsMatrixTypeCleaned::MaxRowsAtCompileTime,
MatrixType::MaxColsAtCompileTime>::type ReturnType; MatrixTypeCleaned::MaxColsAtCompileTime>::type ReturnType;
}; };
template<typename MatrixType,typename Lhs> template<typename MatrixType,typename Lhs>
@ -246,7 +248,8 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
: public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> > : public ReturnByValue<homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs> >
{ {
typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType; typedef typename traits<homogeneous_left_product_impl>::LhsMatrixType LhsMatrixType;
typedef typename remove_all<typename LhsMatrixType::Nested>::type LhsMatrixTypeNested; typedef typename remove_all<LhsMatrixType>::type LhsMatrixTypeCleaned;
typedef typename remove_all<typename LhsMatrixTypeCleaned::Nested>::type LhsMatrixTypeNested;
typedef typename MatrixType::Index Index; typedef typename MatrixType::Index Index;
homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs) homogeneous_left_product_impl(const Lhs& lhs, const MatrixType& rhs)
: m_lhs(take_matrix_for_product<Lhs>::run(lhs)), : m_lhs(take_matrix_for_product<Lhs>::run(lhs)),
@ -267,7 +270,7 @@ struct homogeneous_left_product_impl<Homogeneous<MatrixType,Vertical>,Lhs>
.template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols()); .template replicate<MatrixType::ColsAtCompileTime>(m_rhs.cols());
} }
const typename LhsMatrixType::Nested m_lhs; const typename LhsMatrixTypeCleaned::Nested m_lhs;
const typename MatrixType::Nested m_rhs; const typename MatrixType::Nested m_rhs;
}; };