mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-08-08 17:59:00 +08:00
revert most of previous commit. It really is better to forbid default
constructor for dynamic-size matrices. Now why do I feel like a beheaded chicken running around?
This commit is contained in:
parent
b036eca902
commit
47d354924b
@ -56,7 +56,6 @@ template<typename Expression> class Eval : NoOperatorEquals,
|
|||||||
typedef Expression Base;
|
typedef Expression Base;
|
||||||
friend class MatrixBase<Scalar, Expression>;
|
friend class MatrixBase<Scalar, Expression>;
|
||||||
|
|
||||||
Eval() : MatrixType() {}
|
|
||||||
Eval(const Expression& expression) : MatrixType(expression) {}
|
Eval(const Expression& expression) : MatrixType(expression) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -163,13 +163,14 @@ class Matrix : public MatrixBase<_Scalar, Matrix<_Scalar, _Rows, _Cols, _Storage
|
|||||||
static Map<Matrix> map(Scalar* array, int size);
|
static Map<Matrix> map(Scalar* array, int size);
|
||||||
static Map<Matrix> map(Scalar* array);
|
static Map<Matrix> map(Scalar* array);
|
||||||
|
|
||||||
/** Default constructor.
|
/** Default constructor, does nothing. Only for fixed-size matrices.
|
||||||
*
|
* For dynamic-size matrices and vectors, this constructor is forbidden (guarded by
|
||||||
* For fixed-size matrices, does nothing.
|
* an assertion) because it would leave the matrix without an allocated data buffer.
|
||||||
*
|
|
||||||
* For dynamic-size matrices, dynamic dimensions are set to 1.
|
|
||||||
*/
|
*/
|
||||||
explicit Matrix() : Storage() {}
|
explicit Matrix() : Storage()
|
||||||
|
{
|
||||||
|
assert(RowsAtCompileTime > 0 && ColsAtCompileTime > 0);
|
||||||
|
}
|
||||||
|
|
||||||
/** Constructs a vector or row-vector with given dimension. \only_for_vectors
|
/** Constructs a vector or row-vector with given dimension. \only_for_vectors
|
||||||
*
|
*
|
||||||
|
@ -80,7 +80,7 @@ class MatrixStorage<Scalar, Dynamic, ColsAtCompileTime>
|
|||||||
{ return ColsAtCompileTime; }
|
{ return ColsAtCompileTime; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MatrixStorage(int dim = 1) : m_rows(dim)
|
MatrixStorage(int dim) : m_rows(dim)
|
||||||
{
|
{
|
||||||
m_data = new Scalar[m_rows * ColsAtCompileTime];
|
m_data = new Scalar[m_rows * ColsAtCompileTime];
|
||||||
}
|
}
|
||||||
@ -92,6 +92,9 @@ class MatrixStorage<Scalar, Dynamic, ColsAtCompileTime>
|
|||||||
|
|
||||||
~MatrixStorage()
|
~MatrixStorage()
|
||||||
{ delete[] m_data; }
|
{ delete[] m_data; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
MatrixStorage();
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar, int RowsAtCompileTime>
|
template<typename Scalar, int RowsAtCompileTime>
|
||||||
@ -120,7 +123,7 @@ class MatrixStorage<Scalar, RowsAtCompileTime, Dynamic>
|
|||||||
{ return m_cols; }
|
{ return m_cols; }
|
||||||
|
|
||||||
public:
|
public:
|
||||||
MatrixStorage(int dim = 1) : m_cols(dim)
|
MatrixStorage(int dim) : m_cols(dim)
|
||||||
{
|
{
|
||||||
m_data = new Scalar[m_cols * RowsAtCompileTime];
|
m_data = new Scalar[m_cols * RowsAtCompileTime];
|
||||||
}
|
}
|
||||||
@ -132,6 +135,9 @@ class MatrixStorage<Scalar, RowsAtCompileTime, Dynamic>
|
|||||||
|
|
||||||
~MatrixStorage()
|
~MatrixStorage()
|
||||||
{ delete[] m_data; }
|
{ delete[] m_data; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
MatrixStorage();
|
||||||
};
|
};
|
||||||
|
|
||||||
template<typename Scalar>
|
template<typename Scalar>
|
||||||
@ -161,13 +167,17 @@ class MatrixStorage<Scalar, Dynamic, Dynamic>
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
MatrixStorage(int rows = 1, int cols = 1) : m_rows(rows), m_cols(cols)
|
MatrixStorage(int rows, int cols) : m_rows(rows), m_cols(cols)
|
||||||
{
|
{
|
||||||
m_data = new Scalar[m_rows * m_cols];
|
m_data = new Scalar[m_rows * m_cols];
|
||||||
}
|
}
|
||||||
|
|
||||||
~MatrixStorage()
|
~MatrixStorage()
|
||||||
{ delete[] m_data; }
|
{ delete[] m_data; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
MatrixStorage();
|
||||||
|
MatrixStorage(int dim);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EIGEN_MATRIXSTORAGE_H
|
#endif // EIGEN_MATRIXSTORAGE_H
|
||||||
|
Loading…
x
Reference in New Issue
Block a user