mirror of
https://gitlab.com/libeigen/eigen.git
synced 2026-04-10 11:34:33 +08:00
generalized ei_traits<>.
Finally the importing macro is named EIGEN_BASIC_PUBLIC_INTERFACE because it does not only import the ei_traits, it also makes the base class a friend, etc.
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user