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_ZERO_H
#define EIGEN_ZERO_H
template<typename MatrixType> class Zero
: public MatrixBase<typename MatrixType::Scalar, Zero<MatrixType> >
template<typename MatrixType> class Zero : NoDefaultOperatorEquals,
public MatrixBase<typename MatrixType::Scalar, Zero<MatrixType> >
{
public:
typedef typename MatrixType::Scalar Scalar;
@@ -41,9 +41,6 @@ template<typename MatrixType> class Zero
assert(rows > 0 && cols > 0);
}
// assignments are illegal but we still want to intercept them and get clean compile errors
EIGEN_INHERIT_ASSIGNMENT_OPERATORS(Zero)
private:
const Zero& _ref() const { return *this; }
int _rows() const { return m_rows; }