diff options
author | Hauke Heibel <hauke.heibel@gmail.com> | 2010-10-26 16:47:01 +0200 |
---|---|---|
committer | Hauke Heibel <hauke.heibel@gmail.com> | 2010-10-26 16:47:01 +0200 |
commit | c738cd56ebdafe986c7edeb2621ec25f3c0b29d9 (patch) | |
tree | 2ff118b343b69a7dd68d7ad7d898fdfdc82c58ce /Eigen/src/Core | |
parent | 2fbb9932b0f517643c5f05e4056b939b73956b00 (diff) |
Renamed cleantype to remove_all since it is close to remove_{const|pointer|reference}.
Diffstat (limited to 'Eigen/src/Core')
-rw-r--r-- | Eigen/src/Core/ArrayWrapper.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseBinaryOp.h | 6 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseUnaryOp.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/CwiseUnaryView.h | 6 | ||||
-rw-r--r-- | Eigen/src/Core/NoAlias.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/PermutationMatrix.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/Product.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/ProductBase.h | 12 | ||||
-rw-r--r-- | Eigen/src/Core/Redux.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/Select.h | 6 | ||||
-rw-r--r-- | Eigen/src/Core/Transpose.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/Transpositions.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/TriangularMatrix.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/VectorwiseOp.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/products/CoeffBasedProduct.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/products/SelfadjointProduct.h | 2 | ||||
-rw-r--r-- | Eigen/src/Core/products/SelfadjointRank2Update.h | 8 | ||||
-rw-r--r-- | Eigen/src/Core/util/Meta.h | 14 | ||||
-rw-r--r-- | Eigen/src/Core/util/XprHelper.h | 2 |
19 files changed, 46 insertions, 46 deletions
diff --git a/Eigen/src/Core/ArrayWrapper.h b/Eigen/src/Core/ArrayWrapper.h index 814313f20..d5b8c6804 100644 --- a/Eigen/src/Core/ArrayWrapper.h +++ b/Eigen/src/Core/ArrayWrapper.h @@ -39,7 +39,7 @@ namespace internal { template<typename ExpressionType> struct traits<ArrayWrapper<ExpressionType> > - : public traits<typename cleantype<typename ExpressionType::Nested>::type > + : public traits<typename remove_all<typename ExpressionType::Nested>::type > { typedef ArrayXpr XprKind; }; @@ -127,7 +127,7 @@ class ArrayWrapper : public ArrayBase<ArrayWrapper<ExpressionType> > namespace internal { template<typename ExpressionType> struct traits<MatrixWrapper<ExpressionType> > - : public traits<typename cleantype<typename ExpressionType::Nested>::type > + : public traits<typename remove_all<typename ExpressionType::Nested>::type > { typedef MatrixXpr XprKind; }; diff --git a/Eigen/src/Core/CwiseBinaryOp.h b/Eigen/src/Core/CwiseBinaryOp.h index 9b5908532..7386b2e18 100644 --- a/Eigen/src/Core/CwiseBinaryOp.h +++ b/Eigen/src/Core/CwiseBinaryOp.h @@ -52,7 +52,7 @@ struct traits<CwiseBinaryOp<BinaryOp, Lhs, Rhs> > { // we must not inherit from traits<Lhs> since it has // the potential to cause problems with MSVC - typedef typename cleantype<Lhs>::type Ancestor; + typedef typename remove_all<Lhs>::type Ancestor; typedef typename traits<Ancestor>::XprKind XprKind; enum { RowsAtCompileTime = traits<Ancestor>::RowsAtCompileTime, @@ -146,14 +146,14 @@ class CwiseBinaryOp : internal::no_assignment_operator, EIGEN_STRONG_INLINE Index rows() const { // return the fixed size type if available to enable compile time optimizations - if (internal::traits<typename internal::cleantype<LhsNested>::type>::RowsAtCompileTime==Dynamic) + if (internal::traits<typename internal::remove_all<LhsNested>::type>::RowsAtCompileTime==Dynamic) return m_rhs.rows(); else return m_lhs.rows(); } EIGEN_STRONG_INLINE Index cols() const { // return the fixed size type if available to enable compile time optimizations - if (internal::traits<typename internal::cleantype<LhsNested>::type>::ColsAtCompileTime==Dynamic) + if (internal::traits<typename internal::remove_all<LhsNested>::type>::ColsAtCompileTime==Dynamic) return m_rhs.cols(); else return m_lhs.cols(); diff --git a/Eigen/src/Core/CwiseUnaryOp.h b/Eigen/src/Core/CwiseUnaryOp.h index 7bc813d14..958571d64 100644 --- a/Eigen/src/Core/CwiseUnaryOp.h +++ b/Eigen/src/Core/CwiseUnaryOp.h @@ -87,11 +87,11 @@ class CwiseUnaryOp : internal::no_assignment_operator, const UnaryOp& functor() const { return m_functor; } /** \returns the nested expression */ - const typename internal::cleantype<typename XprType::Nested>::type& + const typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() const { return m_xpr; } /** \returns the nested expression */ - typename internal::cleantype<typename XprType::Nested>::type& + typename internal::remove_all<typename XprType::Nested>::type& nestedExpression() { return m_xpr.const_cast_derived(); } protected: diff --git a/Eigen/src/Core/CwiseUnaryView.h b/Eigen/src/Core/CwiseUnaryView.h index 8b5a69513..d24ef0373 100644 --- a/Eigen/src/Core/CwiseUnaryView.h +++ b/Eigen/src/Core/CwiseUnaryView.h @@ -48,7 +48,7 @@ struct traits<CwiseUnaryView<ViewOp, MatrixType> > ViewOp(typename traits<MatrixType>::Scalar) >::type Scalar; typedef typename MatrixType::Nested MatrixTypeNested; - typedef typename cleantype<MatrixTypeNested>::type _MatrixTypeNested; + typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested; enum { Flags = (traits<_MatrixTypeNested>::Flags & (HereditaryBits | LvalueBit | LinearAccessBit | DirectAccessBit)), CoeffReadCost = traits<_MatrixTypeNested>::CoeffReadCost + functor_traits<ViewOp>::Cost, @@ -88,11 +88,11 @@ class CwiseUnaryView : internal::no_assignment_operator, const ViewOp& functor() const { return m_functor; } /** \returns the nested expression */ - const typename internal::cleantype<typename MatrixType::Nested>::type& + const typename internal::remove_all<typename MatrixType::Nested>::type& nestedExpression() const { return m_matrix; } /** \returns the nested expression */ - typename internal::cleantype<typename MatrixType::Nested>::type& + typename internal::remove_all<typename MatrixType::Nested>::type& nestedExpression() { return m_matrix.const_cast_derived(); } protected: diff --git a/Eigen/src/Core/NoAlias.h b/Eigen/src/Core/NoAlias.h index fe63477bc..da64affcf 100644 --- a/Eigen/src/Core/NoAlias.h +++ b/Eigen/src/Core/NoAlias.h @@ -60,7 +60,7 @@ class NoAlias typedef SelfCwiseBinaryOp<internal::scalar_sum_op<Scalar>, ExpressionType, OtherDerived> SelfAdder; SelfAdder tmp(m_expression); typedef typename internal::nested<OtherDerived>::type OtherDerivedNested; - typedef typename internal::cleantype<OtherDerivedNested>::type _OtherDerivedNested; + typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested; internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived())); return m_expression; } @@ -72,7 +72,7 @@ class NoAlias typedef SelfCwiseBinaryOp<internal::scalar_difference_op<Scalar>, ExpressionType, OtherDerived> SelfAdder; SelfAdder tmp(m_expression); typedef typename internal::nested<OtherDerived>::type OtherDerivedNested; - typedef typename internal::cleantype<OtherDerivedNested>::type _OtherDerivedNested; + typedef typename internal::remove_all<OtherDerivedNested>::type _OtherDerivedNested; internal::assign_selector<SelfAdder,_OtherDerivedNested,false>::run(tmp,OtherDerivedNested(other.derived())); return m_expression; } diff --git a/Eigen/src/Core/PermutationMatrix.h b/Eigen/src/Core/PermutationMatrix.h index e5e5d593a..1f333adea 100644 --- a/Eigen/src/Core/PermutationMatrix.h +++ b/Eigen/src/Core/PermutationMatrix.h @@ -340,7 +340,7 @@ template<typename PermutationType, typename MatrixType, int Side, bool Transpose struct permut_matrix_product_retval : public ReturnByValue<permut_matrix_product_retval<PermutationType, MatrixType, Side, Transposed> > { - typedef typename cleantype<typename MatrixType::Nested>::type MatrixTypeNestedCleaned; + typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned; permut_matrix_product_retval(const PermutationType& perm, const MatrixType& matrix) : m_permutation(perm), m_matrix(matrix) diff --git a/Eigen/src/Core/Product.h b/Eigen/src/Core/Product.h index c04701492..c8b5b6b52 100644 --- a/Eigen/src/Core/Product.h +++ b/Eigen/src/Core/Product.h @@ -59,8 +59,8 @@ template<int Rows, int Cols, int Depth> struct product_type_selector; template<typename Lhs, typename Rhs> struct product_type { - typedef typename cleantype<Lhs>::type _Lhs; - typedef typename cleantype<Rhs>::type _Rhs; + typedef typename remove_all<Lhs>::type _Lhs; + typedef typename remove_all<Rhs>::type _Rhs; enum { Rows = _Lhs::MaxRowsAtCompileTime, Cols = _Rhs::MaxColsAtCompileTime, diff --git a/Eigen/src/Core/ProductBase.h b/Eigen/src/Core/ProductBase.h index d45819132..e2406839e 100644 --- a/Eigen/src/Core/ProductBase.h +++ b/Eigen/src/Core/ProductBase.h @@ -35,8 +35,8 @@ template<typename Derived, typename _Lhs, typename _Rhs> struct traits<ProductBase<Derived,_Lhs,_Rhs> > { typedef MatrixXpr XprKind; - typedef typename cleantype<_Lhs>::type Lhs; - typedef typename cleantype<_Rhs>::type Rhs; + typedef typename remove_all<_Lhs>::type Lhs; + typedef typename remove_all<_Rhs>::type Rhs; typedef typename scalar_product_traits<typename Lhs::Scalar, typename Rhs::Scalar>::ReturnType Scalar; typedef typename promote_storage_type<typename traits<Lhs>::StorageKind, typename traits<Rhs>::StorageKind>::ret StorageKind; @@ -80,16 +80,16 @@ class ProductBase : public MatrixBase<Derived> EIGEN_DENSE_PUBLIC_INTERFACE(ProductBase) protected: typedef typename Lhs::Nested LhsNested; - typedef typename internal::cleantype<LhsNested>::type _LhsNested; + typedef typename internal::remove_all<LhsNested>::type _LhsNested; typedef internal::blas_traits<_LhsNested> LhsBlasTraits; typedef typename LhsBlasTraits::DirectLinearAccessType ActualLhsType; - typedef typename internal::cleantype<ActualLhsType>::type _ActualLhsType; + typedef typename internal::remove_all<ActualLhsType>::type _ActualLhsType; typedef typename Rhs::Nested RhsNested; - typedef typename internal::cleantype<RhsNested>::type _RhsNested; + typedef typename internal::remove_all<RhsNested>::type _RhsNested; typedef internal::blas_traits<_RhsNested> RhsBlasTraits; typedef typename RhsBlasTraits::DirectLinearAccessType ActualRhsType; - typedef typename internal::cleantype<ActualRhsType>::type _ActualRhsType; + typedef typename internal::remove_all<ActualRhsType>::type _ActualRhsType; // Diagonal of a product: no need to evaluate the arguments because they are going to be evaluated only once typedef CoeffBasedProduct<LhsNested, RhsNested, 0> FullyLazyCoeffBaseProductType; diff --git a/Eigen/src/Core/Redux.h b/Eigen/src/Core/Redux.h index f5a584cd4..25febb773 100644 --- a/Eigen/src/Core/Redux.h +++ b/Eigen/src/Core/Redux.h @@ -325,7 +325,7 @@ template<typename Func> EIGEN_STRONG_INLINE typename internal::result_of<Func(typename internal::traits<Derived>::Scalar)>::type DenseBase<Derived>::redux(const Func& func) const { - typedef typename internal::cleantype<typename Derived::Nested>::type ThisNested; + typedef typename internal::remove_all<typename Derived::Nested>::type ThisNested; return internal::redux_impl<Func, ThisNested> ::run(derived(), func); } diff --git a/Eigen/src/Core/Select.h b/Eigen/src/Core/Select.h index bad6a74f9..d0cd66a26 100644 --- a/Eigen/src/Core/Select.h +++ b/Eigen/src/Core/Select.h @@ -57,9 +57,9 @@ struct traits<Select<ConditionMatrixType, ThenMatrixType, ElseMatrixType> > MaxRowsAtCompileTime = ConditionMatrixType::MaxRowsAtCompileTime, MaxColsAtCompileTime = ConditionMatrixType::MaxColsAtCompileTime, Flags = (unsigned int)ThenMatrixType::Flags & ElseMatrixType::Flags & HereditaryBits, - CoeffReadCost = traits<typename cleantype<ConditionMatrixNested>::type>::CoeffReadCost - + EIGEN_SIZE_MAX(traits<typename cleantype<ThenMatrixNested>::type>::CoeffReadCost, - traits<typename cleantype<ElseMatrixNested>::type>::CoeffReadCost) + CoeffReadCost = traits<typename remove_all<ConditionMatrixNested>::type>::CoeffReadCost + + EIGEN_SIZE_MAX(traits<typename remove_all<ThenMatrixNested>::type>::CoeffReadCost, + traits<typename remove_all<ElseMatrixNested>::type>::CoeffReadCost) }; }; } diff --git a/Eigen/src/Core/Transpose.h b/Eigen/src/Core/Transpose.h index b3159a3c5..394b375ab 100644 --- a/Eigen/src/Core/Transpose.h +++ b/Eigen/src/Core/Transpose.h @@ -80,11 +80,11 @@ template<typename MatrixType> class Transpose inline Index cols() const { return m_matrix.rows(); } /** \returns the nested expression */ - const typename internal::cleantype<typename MatrixType::Nested>::type& + const typename internal::remove_all<typename MatrixType::Nested>::type& nestedExpression() const { return m_matrix; } /** \returns the nested expression */ - typename internal::cleantype<typename MatrixType::Nested>::type& + typename internal::remove_all<typename MatrixType::Nested>::type& nestedExpression() { return m_matrix.const_cast_derived(); } protected: diff --git a/Eigen/src/Core/Transpositions.h b/Eigen/src/Core/Transpositions.h index 32a9f1fec..9735b4eea 100644 --- a/Eigen/src/Core/Transpositions.h +++ b/Eigen/src/Core/Transpositions.h @@ -225,7 +225,7 @@ template<typename TranspositionType, typename MatrixType, int Side, bool Transpo struct transposition_matrix_product_retval : public ReturnByValue<transposition_matrix_product_retval<TranspositionType, MatrixType, Side, Transposed> > { - typedef typename cleantype<typename MatrixType::Nested>::type MatrixTypeNestedCleaned; + typedef typename remove_all<typename MatrixType::Nested>::type MatrixTypeNestedCleaned; typedef typename TranspositionType::Index Index; transposition_matrix_product_retval(const TranspositionType& tr, const MatrixType& matrix) diff --git a/Eigen/src/Core/TriangularMatrix.h b/Eigen/src/Core/TriangularMatrix.h index 76f07b892..e361af643 100644 --- a/Eigen/src/Core/TriangularMatrix.h +++ b/Eigen/src/Core/TriangularMatrix.h @@ -162,8 +162,8 @@ template<typename _MatrixType, unsigned int _Mode> class TriangularView protected: typedef typename MatrixType::Nested MatrixTypeNested; - typedef typename internal::cleantype<MatrixTypeNested>::type _MatrixTypeNested; - typedef typename internal::cleantype<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType; + typedef typename internal::remove_all<MatrixTypeNested>::type _MatrixTypeNested; + typedef typename internal::remove_all<typename MatrixType::ConjugateReturnType>::type MatrixConjugateReturnType; public: using Base::evalToLazy; diff --git a/Eigen/src/Core/VectorwiseOp.h b/Eigen/src/Core/VectorwiseOp.h index 8cd516479..ab6089794 100644 --- a/Eigen/src/Core/VectorwiseOp.h +++ b/Eigen/src/Core/VectorwiseOp.h @@ -55,7 +55,7 @@ struct traits<PartialReduxExpr<MatrixType, MemberOp, Direction> > typedef typename traits<MatrixType>::XprKind XprKind; typedef typename MatrixType::Scalar InputScalar; typedef typename nested<MatrixType>::type MatrixTypeNested; - typedef typename cleantype<MatrixTypeNested>::type _MatrixTypeNested; + typedef typename remove_all<MatrixTypeNested>::type _MatrixTypeNested; enum { RowsAtCompileTime = Direction==Vertical ? 1 : MatrixType::RowsAtCompileTime, ColsAtCompileTime = Direction==Horizontal ? 1 : MatrixType::ColsAtCompileTime, diff --git a/Eigen/src/Core/products/CoeffBasedProduct.h b/Eigen/src/Core/products/CoeffBasedProduct.h index 97cdddcdf..8605011da 100644 --- a/Eigen/src/Core/products/CoeffBasedProduct.h +++ b/Eigen/src/Core/products/CoeffBasedProduct.h @@ -51,8 +51,8 @@ template<typename LhsNested, typename RhsNested, int NestingFlags> struct traits<CoeffBasedProduct<LhsNested,RhsNested,NestingFlags> > { typedef MatrixXpr XprKind; - typedef typename cleantype<LhsNested>::type _LhsNested; - typedef typename cleantype<RhsNested>::type _RhsNested; + typedef typename remove_all<LhsNested>::type _LhsNested; + typedef typename remove_all<RhsNested>::type _RhsNested; typedef typename scalar_product_traits<typename _LhsNested::Scalar, typename _RhsNested::Scalar>::ReturnType Scalar; typedef typename promote_storage_type<typename traits<_LhsNested>::StorageKind, typename traits<_RhsNested>::StorageKind>::ret StorageKind; diff --git a/Eigen/src/Core/products/SelfadjointProduct.h b/Eigen/src/Core/products/SelfadjointProduct.h index 26aa65cca..16320fa17 100644 --- a/Eigen/src/Core/products/SelfadjointProduct.h +++ b/Eigen/src/Core/products/SelfadjointProduct.h @@ -203,7 +203,7 @@ SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo> { typedef internal::blas_traits<DerivedU> UBlasTraits; typedef typename UBlasTraits::DirectLinearAccessType ActualUType; - typedef typename internal::cleantype<ActualUType>::type _ActualUType; + typedef typename internal::remove_all<ActualUType>::type _ActualUType; const ActualUType actualU = UBlasTraits::extract(u.derived()); Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived()); diff --git a/Eigen/src/Core/products/SelfadjointRank2Update.h b/Eigen/src/Core/products/SelfadjointRank2Update.h index ece4c426b..41968a596 100644 --- a/Eigen/src/Core/products/SelfadjointRank2Update.h +++ b/Eigen/src/Core/products/SelfadjointRank2Update.h @@ -75,12 +75,12 @@ SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo> { typedef internal::blas_traits<DerivedU> UBlasTraits; typedef typename UBlasTraits::DirectLinearAccessType ActualUType; - typedef typename internal::cleantype<ActualUType>::type _ActualUType; + typedef typename internal::remove_all<ActualUType>::type _ActualUType; const ActualUType actualU = UBlasTraits::extract(u.derived()); typedef internal::blas_traits<DerivedV> VBlasTraits; typedef typename VBlasTraits::DirectLinearAccessType ActualVType; - typedef typename internal::cleantype<ActualVType>::type _ActualVType; + typedef typename internal::remove_all<ActualVType>::type _ActualVType; const ActualVType actualV = VBlasTraits::extract(v.derived()); Scalar actualAlpha = alpha * UBlasTraits::extractScalarFactor(u.derived()) @@ -88,8 +88,8 @@ SelfAdjointView<MatrixType,UpLo>& SelfAdjointView<MatrixType,UpLo> enum { IsRowMajor = (internal::traits<MatrixType>::Flags&RowMajorBit) ? 1 : 0 }; internal::selfadjoint_rank2_update_selector<Scalar, Index, - typename internal::cleantype<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type, - typename internal::cleantype<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type, + typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ UBlasTraits::NeedToConjugate,_ActualUType>::type>::type, + typename internal::remove_all<typename internal::conj_expr_if<IsRowMajor ^ VBlasTraits::NeedToConjugate,_ActualVType>::type>::type, (IsRowMajor ? int(UpLo==Upper ? Lower : Upper) : UpLo)> ::run(const_cast<Scalar*>(_expression().data()),_expression().outerStride(),actualU,actualV,actualAlpha); diff --git a/Eigen/src/Core/util/Meta.h b/Eigen/src/Core/util/Meta.h index 53dfa9949..bb9a66cf1 100644 --- a/Eigen/src/Core/util/Meta.h +++ b/Eigen/src/Core/util/Meta.h @@ -59,12 +59,12 @@ template<typename T> struct remove_const<const T> { typedef T type; }; template<typename T> struct remove_const<T const &> { typedef T & type; }; template<typename T> struct remove_const<T const *> { typedef T * type; }; -template<typename T> struct cleantype { typedef T type; }; -template<typename T> struct cleantype<const T> { typedef typename cleantype<T>::type type; }; -template<typename T> struct cleantype<const T&> { typedef typename cleantype<T>::type type; }; -template<typename T> struct cleantype<T&> { typedef typename cleantype<T>::type type; }; -template<typename T> struct cleantype<const T*> { typedef typename cleantype<T>::type type; }; -template<typename T> struct cleantype<T*> { typedef typename cleantype<T>::type type; }; +template<typename T> struct remove_all { typedef T type; }; +template<typename T> struct remove_all<const T> { typedef typename remove_all<T>::type type; }; +template<typename T> struct remove_all<const T&> { typedef typename remove_all<T>::type type; }; +template<typename T> struct remove_all<T&> { typedef typename remove_all<T>::type type; }; +template<typename T> struct remove_all<const T*> { typedef typename remove_all<T>::type type; }; +template<typename T> struct remove_all<T*> { typedef typename remove_all<T>::type type; }; template<typename T> struct is_arithmetic { enum { value = false }; }; template<> struct is_arithmetic<float> { enum { value = true }; }; @@ -209,7 +209,7 @@ template<typename T> struct scalar_product_traits<std::complex<T>, T> // FIXME quick workaround around current limitation of result_of // template<typename Scalar, typename ArgType0, typename ArgType1> // struct result_of<scalar_product_op<Scalar>(ArgType0,ArgType1)> { -// typedef typename scalar_product_traits<typename cleantype<ArgType0>::type, typename cleantype<ArgType1>::type>::ReturnType type; +// typedef typename scalar_product_traits<typename remove_all<ArgType0>::type, typename remove_all<ArgType1>::type>::ReturnType type; // }; template<typename T> struct is_diagonal diff --git a/Eigen/src/Core/util/XprHelper.h b/Eigen/src/Core/util/XprHelper.h index 89df78de0..7dc52e55d 100644 --- a/Eigen/src/Core/util/XprHelper.h +++ b/Eigen/src/Core/util/XprHelper.h @@ -410,7 +410,7 @@ template<typename ExpressionType> struct HNormalizedReturnType { template<typename XprType, typename CastType> struct cast_return_type { typedef typename XprType::Scalar CurrentScalarType; - typedef typename cleantype<CastType>::type _CastType; + typedef typename remove_all<CastType>::type _CastType; typedef typename _CastType::Scalar NewScalarType; typedef typename conditional<is_same<CurrentScalarType,NewScalarType>::value, const XprType&,CastType>::type type; |