diff --git a/Eigen/src/Sparse/DynamicSparseMatrix.h b/Eigen/src/Sparse/DynamicSparseMatrix.h index 710b978fe..99715d031 100644 --- a/Eigen/src/Sparse/DynamicSparseMatrix.h +++ b/Eigen/src/Sparse/DynamicSparseMatrix.h @@ -279,18 +279,6 @@ class DynamicSparseMatrix return *this; } - template - inline DynamicSparseMatrix& operator=(const SparseMatrixBase& other) - { - return SparseMatrixBase::operator=(other.derived()); - } - - template - EIGEN_STRONG_INLINE DynamicSparseMatrix& operator=(const ReturnByValue& func) - { - return Base::operator=(func); - } - /** Destructor */ inline ~DynamicSparseMatrix() {} diff --git a/Eigen/src/Sparse/SparseMatrix.h b/Eigen/src/Sparse/SparseMatrix.h index 73ca5945b..190979b44 100644 --- a/Eigen/src/Sparse/SparseMatrix.h +++ b/Eigen/src/Sparse/SparseMatrix.h @@ -85,7 +85,7 @@ class SparseMatrix { public: EIGEN_SPARSE_PUBLIC_INTERFACE(SparseMatrix) - using Base::operator=; +// using Base::operator=; EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, +=) EIGEN_SPARSE_INHERIT_ASSIGNMENT_OPERATOR(SparseMatrix, -=) // FIXME: why are these operator already alvailable ??? @@ -466,15 +466,15 @@ class SparseMatrix #ifndef EIGEN_PARSED_BY_DOXYGEN template inline SparseMatrix& operator=(const SparseSparseProduct& product) - { - return Base::operator=(product); - } + { return Base::operator=(product); } template - EIGEN_STRONG_INLINE SparseMatrix& operator=(const ReturnByValue& func) - { - return Base::operator=(func); - } + inline SparseMatrix& operator=(const ReturnByValue& other) + { return Base::operator=(other); } + + template + inline SparseMatrix& operator=(const EigenBase& other) + { return Base::operator=(other); } #endif template