mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-07-24 13:54:28 +08:00
* default MatrixBase ctor: make it protected, make it a static assert, only do the check when debugging eigen to avoid slowing down compilation for everybody (this check is paranoiac, it's very seldom useful)
* add private MatrixBase ctors to catch cases when the user tries to construct MatrixBase objects directly
This commit is contained in:
parent
22dd13fdb9
commit
6a90f6c5f0
@ -136,12 +136,6 @@ template<typename Derived> class MatrixBase
|
|||||||
*/
|
*/
|
||||||
};
|
};
|
||||||
|
|
||||||
/** Default constructor. Just checks at compile-time for self-consistency of the flags. */
|
|
||||||
MatrixBase()
|
|
||||||
{
|
|
||||||
ei_assert(ei_are_flags_consistent<Flags>::ret);
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
#ifndef EIGEN_PARSED_BY_DOXYGEN
|
||||||
/** This is the "real scalar" type; if the \a Scalar type is already real numbers
|
/** This is the "real scalar" type; if the \a Scalar type is already real numbers
|
||||||
* (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
|
* (e.g. int, float or double) then \a RealScalar is just the same as \a Scalar. If
|
||||||
@ -627,6 +621,24 @@ template<typename Derived> class MatrixBase
|
|||||||
#ifdef EIGEN_MATRIXBASE_PLUGIN
|
#ifdef EIGEN_MATRIXBASE_PLUGIN
|
||||||
#include EIGEN_MATRIXBASE_PLUGIN
|
#include EIGEN_MATRIXBASE_PLUGIN
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/** Default constructor. Do nothing. */
|
||||||
|
MatrixBase()
|
||||||
|
{
|
||||||
|
/* Just checks for self-consistency of the flags.
|
||||||
|
* Only do it when debugging Eigen, as this borders on paranoiac and could slow compilation down
|
||||||
|
*/
|
||||||
|
#ifdef EIGEN_INTERNAL_DEBUGGING
|
||||||
|
EIGEN_STATIC_ASSERT(ei_are_flags_consistent<Flags>::ret,
|
||||||
|
INVALID_MATRIXBASE_TEMPLATE_PARAMETERS)
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
MatrixBase(int);
|
||||||
|
MatrixBase(int,int);
|
||||||
|
template<typename OtherDerived> explicit MatrixBase(const MatrixBase<OtherDerived>&);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // EIGEN_MATRIXBASE_H
|
#endif // EIGEN_MATRIXBASE_H
|
||||||
|
@ -74,6 +74,7 @@
|
|||||||
THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
|
THIS_METHOD_IS_ONLY_FOR_COLUMN_MAJOR_MATRICES,
|
||||||
THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
|
THIS_METHOD_IS_ONLY_FOR_ROW_MAJOR_MATRICES,
|
||||||
INVALID_MATRIX_TEMPLATE_PARAMETERS,
|
INVALID_MATRIX_TEMPLATE_PARAMETERS,
|
||||||
|
INVALID_MATRIXBASE_TEMPLATE_PARAMETERS,
|
||||||
BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
|
BOTH_MATRICES_MUST_HAVE_THE_SAME_STORAGE_ORDER,
|
||||||
THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX
|
THIS_METHOD_IS_ONLY_FOR_DIAGONAL_MATRIX
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user