aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/Util.h
diff options
context:
space:
mode:
Diffstat (limited to 'Eigen/src/Core/Util.h')
-rw-r--r--Eigen/src/Core/Util.h21
1 files changed, 18 insertions, 3 deletions
diff --git a/Eigen/src/Core/Util.h b/Eigen/src/Core/Util.h
index aceb98d8a..5b93c3f78 100644
--- a/Eigen/src/Core/Util.h
+++ b/Eigen/src/Core/Util.h
@@ -84,18 +84,18 @@ using Eigen::MatrixBase;
template<typename OtherDerived> \
Derived& operator Op(const MatrixBase<OtherDerived>& other) \
{ \
- return Base::operator Op(other); \
+ return MatrixBase<Derived>::operator Op(other); \
} \
Derived& operator Op(const Derived& other) \
{ \
- return Base::operator Op(other); \
+ return MatrixBase<Derived>::operator Op(other); \
}
#define EIGEN_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, Op) \
template<typename Other> \
Derived& operator Op(const Other& scalar) \
{ \
- return Base::operator Op(scalar); \
+ return MatrixBase<Derived>::operator Op(scalar); \
}
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
@@ -105,6 +105,21 @@ EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=) \
EIGEN_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, *=) \
EIGEN_INHERIT_SCALAR_ASSIGNMENT_OPERATOR(Derived, /=)
+#define _EIGEN_BASIC_PUBLIC_INTERFACE(Derived, BaseClass) \
+friend class MatrixBase<Derived>; \
+typedef BaseClass Base; \
+typedef typename ei_traits<Derived>::Scalar Scalar; \
+enum { RowsAtCompileTime = ei_traits<Derived>::RowsAtCompileTime, \
+ ColsAtCompileTime = ei_traits<Derived>::ColsAtCompileTime, \
+ MaxRowsAtCompileTime = ei_traits<Derived>::MaxRowsAtCompileTime, \
+ MaxColsAtCompileTime = ei_traits<Derived>::MaxColsAtCompileTime }; \
+using Base::SizeAtCompileTime; \
+using Base::MaxSizeAtCompileTime; \
+using Base::IsVectorAtCompileTime;
+
+#define EIGEN_BASIC_PUBLIC_INTERFACE(Derived) \
+_EIGEN_BASIC_PUBLIC_INTERFACE(Derived, MatrixBase<Derived>)
+
#define EIGEN_ENUM_MIN(a,b) (((int)a <= (int)b) ? (int)a : (int)b)
const int Dynamic = -10;