diff options
Diffstat (limited to 'Eigen/src/Array/Reverse.h')
-rw-r--r-- | Eigen/src/Array/Reverse.h | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Eigen/src/Array/Reverse.h b/Eigen/src/Array/Reverse.h index 4807bea55..a8d8310a9 100644 --- a/Eigen/src/Array/Reverse.h +++ b/Eigen/src/Array/Reverse.h @@ -43,8 +43,10 @@ */ template<typename MatrixType, int Direction> struct ei_traits<Reverse<MatrixType, Direction> > + : ei_traits<MatrixType> { typedef typename MatrixType::Scalar Scalar; + typedef typename ei_traits<MatrixType>::StorageType StorageType; typedef typename ei_nested<MatrixType>::type MatrixTypeNested; typedef typename ei_unref<MatrixTypeNested>::type _MatrixTypeNested; enum { @@ -75,11 +77,12 @@ template<typename PacketScalar> struct ei_reverse_packet_cond<PacketScalar,false }; template<typename MatrixType, int Direction> class Reverse - : public MatrixBase<Reverse<MatrixType, Direction> > + : public MatrixType::template MakeBase< Reverse<MatrixType, Direction> >::Type { public: - EIGEN_GENERIC_PUBLIC_INTERFACE(Reverse) + typedef typename MatrixType::template MakeBase< Reverse<MatrixType, Direction> >::Type Base; + _EIGEN_GENERIC_PUBLIC_INTERFACE(Reverse) protected: enum { @@ -167,7 +170,7 @@ template<typename MatrixType, int Direction> class Reverse */ template<typename Derived> inline Reverse<Derived, BothDirections> -MatrixBase<Derived>::reverse() +DenseBase<Derived>::reverse() { return derived(); } @@ -175,7 +178,7 @@ MatrixBase<Derived>::reverse() /** This is the const version of reverse(). */ template<typename Derived> inline const Reverse<Derived, BothDirections> -MatrixBase<Derived>::reverse() const +DenseBase<Derived>::reverse() const { return derived(); } @@ -193,7 +196,7 @@ MatrixBase<Derived>::reverse() const * * \sa reverse() */ template<typename Derived> -inline void MatrixBase<Derived>::reverseInPlace() +inline void DenseBase<Derived>::reverseInPlace() { derived() = derived().reverse().eval(); } |