diff --git a/Eigen/src/Core/CwiseNullaryOp.h b/Eigen/src/Core/CwiseNullaryOp.h index a92e3bb48..0f914e7ca 100644 --- a/Eigen/src/Core/CwiseNullaryOp.h +++ b/Eigen/src/Core/CwiseNullaryOp.h @@ -41,14 +41,9 @@ * \sa class CwiseUnaryOp, class CwiseBinaryOp, MatrixBase::NullaryExpr() */ template -struct ei_traits > +struct ei_traits > : ei_traits { - typedef typename ei_traits::Scalar Scalar; enum { - RowsAtCompileTime = ei_traits::RowsAtCompileTime, - ColsAtCompileTime = ei_traits::ColsAtCompileTime, - MaxRowsAtCompileTime = ei_traits::MaxRowsAtCompileTime, - MaxColsAtCompileTime = ei_traits::MaxColsAtCompileTime, Flags = (ei_traits::Flags & ( HereditaryBits | (ei_functor_has_linear_access::ret ? LinearAccessBit : 0) diff --git a/Eigen/src/Core/CwiseUnaryOp.h b/Eigen/src/Core/CwiseUnaryOp.h index 701bc34b0..68be2ac54 100644 --- a/Eigen/src/Core/CwiseUnaryOp.h +++ b/Eigen/src/Core/CwiseUnaryOp.h @@ -41,6 +41,7 @@ */ template struct ei_traits > + : ei_traits { typedef typename ei_result_of< UnaryOp(typename MatrixType::Scalar) @@ -48,16 +49,10 @@ struct ei_traits > typedef typename MatrixType::Nested MatrixTypeNested; typedef typename ei_unref::type _MatrixTypeNested; enum { - MatrixTypeCoeffReadCost = _MatrixTypeNested::CoeffReadCost, - MatrixTypeFlags = _MatrixTypeNested::Flags, - RowsAtCompileTime = MatrixType::RowsAtCompileTime, - ColsAtCompileTime = MatrixType::ColsAtCompileTime, - MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime, - MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime, - Flags = (MatrixTypeFlags & ( + Flags = (_MatrixTypeNested::Flags & ( HereditaryBits | LinearAccessBit | AlignedBit | (ei_functor_traits::PacketAccess ? PacketAccessBit : 0))), - CoeffReadCost = MatrixTypeCoeffReadCost + ei_functor_traits::Cost + CoeffReadCost = _MatrixTypeNested::CoeffReadCost + ei_functor_traits::Cost }; }; diff --git a/Eigen/src/Core/Flagged.h b/Eigen/src/Core/Flagged.h index 189304d54..ce50246cb 100644 --- a/Eigen/src/Core/Flagged.h +++ b/Eigen/src/Core/Flagged.h @@ -40,18 +40,9 @@ * \sa MatrixBase::flagged() */ template -struct ei_traits > +struct ei_traits > : ei_traits { - typedef typename ExpressionType::Scalar Scalar; - - enum { - RowsAtCompileTime = ExpressionType::RowsAtCompileTime, - ColsAtCompileTime = ExpressionType::ColsAtCompileTime, - MaxRowsAtCompileTime = ExpressionType::MaxRowsAtCompileTime, - MaxColsAtCompileTime = ExpressionType::MaxColsAtCompileTime, - Flags = (ExpressionType::Flags | Added) & ~Removed, - CoeffReadCost = ExpressionType::CoeffReadCost - }; + enum { Flags = (ExpressionType::Flags | Added) & ~Removed }; }; template class Flagged diff --git a/Eigen/src/Core/NestByValue.h b/Eigen/src/Core/NestByValue.h index 0c4ceb701..da79315bf 100644 --- a/Eigen/src/Core/NestByValue.h +++ b/Eigen/src/Core/NestByValue.h @@ -38,18 +38,8 @@ * \sa MatrixBase::nestByValue() */ template -struct ei_traits > -{ - typedef typename ExpressionType::Scalar Scalar; - enum { - RowsAtCompileTime = ExpressionType::RowsAtCompileTime, - ColsAtCompileTime = ExpressionType::ColsAtCompileTime, - MaxRowsAtCompileTime = ExpressionType::MaxRowsAtCompileTime, - MaxColsAtCompileTime = ExpressionType::MaxColsAtCompileTime, - Flags = ExpressionType::Flags, - CoeffReadCost = ExpressionType::CoeffReadCost - }; -}; +struct ei_traits > : public ei_traits +{}; template class NestByValue : public MatrixBase > diff --git a/Eigen/src/Core/Part.h b/Eigen/src/Core/Part.h index 883b92a98..b0ef1ff3d 100644 --- a/Eigen/src/Core/Part.h +++ b/Eigen/src/Core/Part.h @@ -43,16 +43,11 @@ * \sa MatrixBase::part() */ template -struct ei_traits > +struct ei_traits > : ei_traits { - typedef typename MatrixType::Scalar Scalar; typedef typename ei_nested::type MatrixTypeNested; typedef typename ei_unref::type _MatrixTypeNested; enum { - RowsAtCompileTime = MatrixType::RowsAtCompileTime, - ColsAtCompileTime = MatrixType::ColsAtCompileTime, - MaxRowsAtCompileTime = MatrixType::MaxRowsAtCompileTime, - MaxColsAtCompileTime = MatrixType::MaxColsAtCompileTime, Flags = (_MatrixTypeNested::Flags & (HereditaryBits) & (~(PacketAccessBit | DirectAccessBit | LinearAccessBit))) | Mode, CoeffReadCost = _MatrixTypeNested::CoeffReadCost };