diff --git a/Eigen/src/Core/Block.h b/Eigen/src/Core/Block.h index 321a1c5f0..a7bb48a42 100644 --- a/Eigen/src/Core/Block.h +++ b/Eigen/src/Core/Block.h @@ -61,27 +61,28 @@ * * \sa MatrixBase::block(int,int,int,int), MatrixBase::block(int,int), class VectorBlock */ + template struct ei_traits > { - typedef typename MatrixType::Scalar Scalar; - typedef typename MatrixType::Nested MatrixTypeNested; + typedef typename ei_traits::Scalar Scalar; + typedef typename ei_nested::type MatrixTypeNested; typedef typename ei_unref::type _MatrixTypeNested; enum{ - RowsAtCompileTime = MatrixType::RowsAtCompileTime == 1 ? 1 : BlockRows, - ColsAtCompileTime = MatrixType::ColsAtCompileTime == 1 ? 1 : BlockCols, + RowsAtCompileTime = ei_traits::RowsAtCompileTime == 1 ? 1 : BlockRows, + ColsAtCompileTime = ei_traits::ColsAtCompileTime == 1 ? 1 : BlockCols, MaxRowsAtCompileTime = RowsAtCompileTime == 1 ? 1 - : (BlockRows==Dynamic ? MatrixType::MaxRowsAtCompileTime : BlockRows), + : (BlockRows==Dynamic ? ei_traits::MaxRowsAtCompileTime : BlockRows), MaxColsAtCompileTime = ColsAtCompileTime == 1 ? 1 - : (BlockCols==Dynamic ? MatrixType::MaxColsAtCompileTime : BlockCols), - RowMajor = int(MatrixType::Flags)&RowMajorBit, + : (BlockCols==Dynamic ? ei_traits::MaxColsAtCompileTime : BlockCols), + RowMajor = int(ei_traits::Flags)&RowMajorBit, InnerSize = RowMajor ? ColsAtCompileTime : RowsAtCompileTime, InnerMaxSize = RowMajor ? MaxColsAtCompileTime : MaxRowsAtCompileTime, MaskPacketAccessBit = (InnerMaxSize == Dynamic || (InnerSize >= ei_packet_traits::size)) ? PacketAccessBit : 0, FlagsLinearAccessBit = (RowsAtCompileTime == 1 || ColsAtCompileTime == 1) ? LinearAccessBit : 0, - Flags = (MatrixType::Flags & (HereditaryBits | MaskPacketAccessBit | DirectAccessBit)) | FlagsLinearAccessBit, - CoeffReadCost = MatrixType::CoeffReadCost, + Flags = (ei_traits::Flags & (HereditaryBits | MaskPacketAccessBit | DirectAccessBit)) | FlagsLinearAccessBit, + CoeffReadCost = ei_traits::CoeffReadCost, PacketAccess = _PacketAccess }; typedef typename ei_meta_if