aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2011-02-01 11:09:02 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2011-02-01 11:09:02 +0100
commit0fdd01fe247ce40add4a6e45e817246fdf99ba5d (patch)
treecf11205b8b590db23735c2571b8242cd5c8fc109 /Eigen
parentf4a7679904db08047a6ec5827025972d06e1c649 (diff)
operator(int) and the likes are not only fine for linear storage
Diffstat (limited to 'Eigen')
-rw-r--r--Eigen/src/Core/MapBase.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h
index 826e4049d..e018b30bb 100644
--- a/Eigen/src/Core/MapBase.h
+++ b/Eigen/src/Core/MapBase.h
@@ -26,8 +26,8 @@
#ifndef EIGEN_MAPBASE_H
#define EIGEN_MAPBASE_H
-#define EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived) \
- EIGEN_STATIC_ASSERT(int(internal::traits<Derived>::Flags) & LinearAccessBit, \
+#define EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived) \
+ EIGEN_STATIC_ASSERT((int(internal::traits<Derived>::Flags) & LinearAccessBit) || Derived::IsVectorAtCompileTime, \
YOU_ARE_TRYING_TO_USE_AN_INDEX_BASED_ACCESSOR_ON_AN_EXPRESSION_THAT_DOES_NOT_SUPPORT_THAT)
@@ -106,7 +106,7 @@ template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
inline const Scalar& coeff(Index index) const
{
- EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived)
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
return m_data[index * innerStride()];
}
@@ -117,7 +117,7 @@ template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
inline const Scalar& coeffRef(Index index) const
{
- EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived)
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
return this->m_data[index * innerStride()];
}
@@ -131,7 +131,7 @@ template<typename Derived> class MapBase<Derived, ReadOnlyAccessors>
template<int LoadMode>
inline PacketScalar packet(Index index) const
{
- EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived)
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
return internal::ploadt<PacketScalar, LoadMode>(m_data + index * innerStride());
}
@@ -217,7 +217,7 @@ template<typename Derived> class MapBase<Derived, WriteAccessors>
inline ScalarWithConstIfNotLvalue& coeffRef(Index index)
{
- EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived)
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
return this->m_data[index * innerStride()];
}
@@ -231,7 +231,7 @@ template<typename Derived> class MapBase<Derived, WriteAccessors>
template<int StoreMode>
inline void writePacket(Index index, const PacketScalar& x)
{
- EIGEN_STATIC_ASSERT_LINEAR_ACCESS(Derived)
+ EIGEN_STATIC_ASSERT_INDEX_BASED_ACCESS(Derived)
internal::pstoret<Scalar, PacketScalar, StoreMode>
(this->m_data + index * innerStride(), x);
}