use a more c++-ish way of preventing the compiler from generating default operator=

when it's not wanted. Thanks to Christian Mayer for the tip.
This commit is contained in:
Benoit Jacob
2007-12-12 16:52:17 +00:00
parent fa8009c6b7
commit 7ddc13b9fa
12 changed files with 28 additions and 55 deletions

View File

@@ -26,8 +26,8 @@
#ifndef EIGEN_DIFFERENCE_H
#define EIGEN_DIFFERENCE_H
template<typename Lhs, typename Rhs> class Difference
: public MatrixBase<typename Lhs::Scalar, Difference<Lhs, Rhs> >
template<typename Lhs, typename Rhs> class Difference : NoDefaultOperatorEquals,
public MatrixBase<typename Lhs::Scalar, Difference<Lhs, Rhs> >
{
public:
typedef typename Lhs::Scalar Scalar;
@@ -47,9 +47,6 @@ template<typename Lhs, typename Rhs> class Difference
Difference(const Difference& other)
: m_lhs(other.m_lhs), m_rhs(other.m_rhs) {}
// assignments are illegal but we still want to intercept them and get clean compile errors
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Difference)
private:
const Difference& _ref() const { return *this; }
int _rows() const { return m_lhs.rows(); }