implement scalar operators separately for each type using a macro.

This is required e.g. to allow "2 * m" with m a matrix of doubles.
This commit is contained in:
Benoit Jacob
2007-09-27 07:42:12 +00:00
parent 8a024825d2
commit 628b1a8f6d
9 changed files with 50 additions and 41 deletions

View File

@@ -75,7 +75,7 @@ const int DynamicSize = -1;
#define EIGEN_UNUSED(x) (void)x
#define INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
#define EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, Op) \
template<typename OtherScalar, typename OtherDerived> \
Derived& operator Op(const EigenBase<OtherScalar, OtherDerived>& other) \
{ \
@@ -86,10 +86,10 @@ Derived& operator Op(const Derived& other) \
return EigenBase<Scalar, Derived>::operator Op(other); \
}
#define INHERIT_ASSIGNMENT_OPERATORS(Derived) \
INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
INHERIT_ASSIGNMENT_OPERATOR(Derived, -=)
#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \
EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, =) \
EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, +=) \
EIGEN_INHERIT_ASSIGNMENT_OPERATOR(Derived, -=)
} // namespace Eigen