diff options
author | 2009-11-13 16:41:51 +0100 | |
---|---|---|
committer | 2009-11-13 16:41:51 +0100 | |
commit | 6680fa42ee830d315db8879d7b0746c68bdcba4e (patch) | |
tree | 0d734759e942263ba26d89eaa805e383ba10a21b /Eigen/src/Core/util/Macros.h | |
parent | d07c05b3a5e338a018e7b0992f32f45ef2f12495 (diff) |
* add Map<Quaternion> test based on Map from test/map.cpp
* replace implicit constructor AngleAxis(QuaternionBase&) by an explicit one, it seems ambiguous for the compiler
* remove explicit constructor with conversion type quaternion(Quaternion&): conflict between constructor.
* modify EIGEN_INHERIT_ASSIGNEMENT_OPERATORS to suit Quaternion class
Diffstat (limited to 'Eigen/src/Core/util/Macros.h')
-rw-r--r-- | Eigen/src/Core/util/Macros.h | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index e9539e3cf..a94300de3 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -168,7 +168,7 @@ using Eigen::ei_cos; #endif // EIGEN_FORCE_INLINE means "inline as much as possible" -#if (defined _MSC_VER) +#if (defined _MSC_VER) || (defined __intel_compiler) #define EIGEN_STRONG_INLINE __forceinline #else #define EIGEN_STRONG_INLINE inline @@ -261,26 +261,26 @@ using Eigen::ei_cos; #define EIGEN_REF_TO_TEMPORARY const & #endif -#ifdef _MSC_VER -#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \ -using Base::operator =; \ -using Base::operator +=; \ -using Base::operator -=; \ -using Base::operator *=; \ -using Base::operator /=; +#if defined(_MSC_VER) && (!defined(__INTEL_COMPILER)) +#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \ +using Base::operator =; #else -#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \ +#define EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) \ using Base::operator =; \ -using Base::operator +=; \ -using Base::operator -=; \ -using Base::operator *=; \ -using Base::operator /=; \ EIGEN_STRONG_INLINE Derived& operator=(const Derived& other) \ { \ - return Base::operator=(other); \ + Base::operator=(other); \ + return *this; \ } #endif +#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \ +using Base::operator +=; \ +using Base::operator -=; \ +using Base::operator *=; \ +using Base::operator /=; \ +EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Derived) + #define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived, BaseClass) \ typedef BaseClass Base; \ typedef typename Eigen::ei_traits<Derived>::Scalar Scalar; \ |