diff options
author | Gael Guennebaud <g.gael@free.fr> | 2014-11-28 14:39:47 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2014-11-28 14:39:47 +0100 |
commit | b1f9f603a071e43c2823dbf8081d2669b0a5c717 (patch) | |
tree | 0ff58aabaf497b8aecd7b02945a1d75c76fc106b | |
parent | 5384e891472e690dc5dabdda014a1e4fc0117691 (diff) |
Simplify return type of diagonal(Index) (and ease compiler job)
-rw-r--r-- | Eigen/src/Core/Diagonal.h | 4 | ||||
-rw-r--r-- | Eigen/src/Core/MatrixBase.h | 15 |
2 files changed, 7 insertions, 12 deletions
diff --git a/Eigen/src/Core/Diagonal.h b/Eigen/src/Core/Diagonal.h index 26a58d664..618b8980b 100644 --- a/Eigen/src/Core/Diagonal.h +++ b/Eigen/src/Core/Diagonal.h @@ -210,7 +210,7 @@ MatrixBase<Derived>::diagonal() const * * \sa MatrixBase::diagonal(), class Diagonal */ template<typename Derived> -inline typename MatrixBase<Derived>::template DiagonalIndexReturnType<DynamicIndex>::Type +inline typename MatrixBase<Derived>::DiagonalDynamicIndexReturnType MatrixBase<Derived>::diagonal(Index index) { return typename DiagonalIndexReturnType<DynamicIndex>::Type(derived(), index); @@ -218,7 +218,7 @@ MatrixBase<Derived>::diagonal(Index index) /** This is the const version of diagonal(Index). */ template<typename Derived> -inline typename MatrixBase<Derived>::template ConstDiagonalIndexReturnType<DynamicIndex>::Type +inline typename MatrixBase<Derived>::ConstDiagonalDynamicIndexReturnType MatrixBase<Derived>::diagonal(Index index) const { return typename ConstDiagonalIndexReturnType<DynamicIndex>::Type(derived(), index); diff --git a/Eigen/src/Core/MatrixBase.h b/Eigen/src/Core/MatrixBase.h index 2e6b631bf..97a59e692 100644 --- a/Eigen/src/Core/MatrixBase.h +++ b/Eigen/src/Core/MatrixBase.h @@ -244,19 +244,14 @@ template<typename Derived> class MatrixBase template<int Index> EIGEN_DEVICE_FUNC typename ConstDiagonalIndexReturnType<Index>::Type diagonal() const; + + typedef Diagonal<Derived,DynamicIndex> DiagonalDynamicIndexReturnType; + typedef const Diagonal<const Derived,DynamicIndex> ConstDiagonalDynamicIndexReturnType; - // Note: The "MatrixBase::" prefixes are added to help MSVC9 to match these declarations with the later implementations. - // On the other hand they confuse MSVC8... - #if EIGEN_COMP_MSVC >= 1500 // 2008 or later - typename MatrixBase::template DiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index); - typename MatrixBase::template ConstDiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index) const; - #else EIGEN_DEVICE_FUNC - typename DiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index); - + DiagonalDynamicIndexReturnType diagonal(Index index); EIGEN_DEVICE_FUNC - typename ConstDiagonalIndexReturnType<DynamicIndex>::Type diagonal(Index index) const; - #endif + ConstDiagonalDynamicIndexReturnType diagonal(Index index) const; template<unsigned int Mode> struct TriangularViewReturnType { typedef TriangularView<Derived, Mode> Type; }; template<unsigned int Mode> struct ConstTriangularViewReturnType { typedef const TriangularView<const Derived, Mode> Type; }; |