diff --git a/Eigen/src/Core/MapBase.h b/Eigen/src/Core/MapBase.h index a8fded4a0..a0311ffcf 100644 --- a/Eigen/src/Core/MapBase.h +++ b/Eigen/src/Core/MapBase.h @@ -166,6 +166,13 @@ template class MapBase && cols >= 0 && (ColsAtCompileTime == Dynamic || ColsAtCompileTime == cols))); } +#ifndef _MSC_VER + Derived& operator=(const MapBase& other) + { + return Base::operator=(other); + } +#endif + using Base::operator=; using Base::operator*=; diff --git a/Eigen/src/Core/util/Macros.h b/Eigen/src/Core/util/Macros.h index 7fb10a315..4e00df759 100644 --- a/Eigen/src/Core/util/Macros.h +++ b/Eigen/src/Core/util/Macros.h @@ -246,12 +246,25 @@ using Eigen::ei_cos; // needed to define it here as escaping characters in CMake add_definition's argument seems very problematic. #define EIGEN_DOCS_IO_FORMAT IOFormat(3, 0, " ", "\n", "", "") +#ifdef _MSC_VER #define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Derived) \ using Base::operator =; \ using Base::operator +=; \ using Base::operator -=; \ using Base::operator *=; \ using Base::operator /=; +#else +#define EIGEN_INHERIT_ASSIGNMENT_OPERATORS(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); \ +} +#endif #define _EIGEN_GENERIC_PUBLIC_INTERFACE(Derived, BaseClass) \ typedef BaseClass Base; \