aboutsummaryrefslogtreecommitdiffhomepage
path: root/Eigen/src/Core/util/Macros.h
diff options
context:
space:
mode:
authorGravatar Mathieu Gautier <mathieu.gautier@cea.fr>2009-11-13 16:41:51 +0100
committerGravatar Mathieu Gautier <mathieu.gautier@cea.fr>2009-11-13 16:41:51 +0100
commit6680fa42ee830d315db8879d7b0746c68bdcba4e (patch)
tree0d734759e942263ba26d89eaa805e383ba10a21b /Eigen/src/Core/util/Macros.h
parentd07c05b3a5e338a018e7b0992f32f45ef2f12495 (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.h28
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; \