aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/DenseBase.h
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2018-10-02 23:44:36 +0200
committerGravatar Gael Guennebaud <g.gael@free.fr>2018-10-02 23:44:36 +0200
commit0481900e25764f16e8723d2588f818d3a610cfad (patch)
treeddfa9c7bdbefe56b146093389568945c65cc5282 /Eigen/src/Core/DenseBase.h
parent8c385281689c51d997a99cabe76672b7c2efe91d (diff)
Add pointer-based iterator for direct-access expressions
Diffstat (limited to 'Eigen/src/Core/DenseBase.h')
-rw-r--r--Eigen/src/Core/DenseBase.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/Eigen/src/Core/DenseBase.h b/Eigen/src/Core/DenseBase.h
index c0699f97d..f69c0b2dc 100644
--- a/Eigen/src/Core/DenseBase.h
+++ b/Eigen/src/Core/DenseBase.h
@@ -572,12 +572,21 @@ template<typename Derived> class DenseBase
}
EIGEN_DEVICE_FUNC void reverseInPlace();
- inline DenseStlIterator<Derived> begin();
- inline DenseStlIterator<const Derived> begin() const;
- inline DenseStlIterator<const Derived> cbegin() const;
- inline DenseStlIterator<Derived> end();
- inline DenseStlIterator<const Derived> end() const;
- inline DenseStlIterator<const Derived> cend() const;
+ typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
+ PointerBasedStlIterator<Derived>,
+ DenseStlIterator<Derived>
+ >::type iterator;
+
+ typedef typename internal::conditional< (Flags&DirectAccessBit)==DirectAccessBit,
+ PointerBasedStlIterator<const Derived>,
+ DenseStlIterator<const Derived>
+ >::type const_iterator;
+ inline iterator begin();
+ inline const_iterator begin() const;
+ inline const_iterator cbegin() const;
+ inline iterator end();
+ inline const_iterator end() const;
+ inline const_iterator cend() const;
inline SubVectorsProxy<Derived,Vertical> allCols();
inline SubVectorsProxy<const Derived,Vertical> allCols() const;
inline SubVectorsProxy<Derived,Horizontal> allRows();