mirror of
https://gitlab.com/libeigen/eigen.git
synced 2025-04-16 14:49:39 +08:00
Add fully generic Vector<Type,Size> and RowVector<Type,Size> type aliases.
This commit is contained in:
parent
302377110a
commit
2a39659d79
@ -467,8 +467,10 @@ class Matrix
|
||||
* They follow the same pattern as above except that the scalar type suffix is replaced by a
|
||||
* template parameter, i.e.:
|
||||
* - `MatrixSize<Type>` where `Size` can be \c 2,\c 3,\c 4 for fixed size square matrices or \c X for dynamic size.
|
||||
* - `MatrixXSize<Type>`and `MatrixSizeX<Type>` where `Size` can be \c 2,\c 3,\c 4 for hybrid dynamic/fixed matrices.
|
||||
* - `MatrixXSize<Type>` and `MatrixSizeX<Type>` where `Size` can be \c 2,\c 3,\c 4 for hybrid dynamic/fixed matrices.
|
||||
* - `VectorSize<Type>` and `RowVectorSize<Type>` for column and row vectors.
|
||||
*
|
||||
* With \cpp11, you can also use fully generic column and row vector types: `Vector<Type,Size>` and `RowVector<Type,Size>`.
|
||||
*
|
||||
* \sa class Matrix
|
||||
*/
|
||||
@ -540,6 +542,16 @@ EIGEN_MAKE_FIXED_TYPEDEFS(2)
|
||||
EIGEN_MAKE_FIXED_TYPEDEFS(3)
|
||||
EIGEN_MAKE_FIXED_TYPEDEFS(4)
|
||||
|
||||
/** \ingroup matrixtypedefs
|
||||
* \brief \cpp11 */
|
||||
template <typename Type, int Size>
|
||||
using Vector = Matrix<Type, Size, 1>;
|
||||
|
||||
/** \ingroup matrixtypedefs
|
||||
* \brief \cpp11 */
|
||||
template <typename Type, int Size>
|
||||
using RowVector = Matrix<Type, 1, Size>;
|
||||
|
||||
#undef EIGEN_MAKE_TYPEDEFS
|
||||
#undef EIGEN_MAKE_FIXED_TYPEDEFS
|
||||
|
||||
|
@ -29,7 +29,7 @@ EIGEN_DECLARE_TEST(type_alias)
|
||||
STATIC_CHECK((is_same<Vector2<float>, Vector2f>::value));
|
||||
STATIC_CHECK((is_same<RowVectorX<int>, RowVectorXi>::value));
|
||||
STATIC_CHECK((is_same<RowVector2<float>, RowVector2f>::value));
|
||||
|
||||
|
||||
STATIC_CHECK((is_same<ArrayXX<float>, ArrayXXf>::value));
|
||||
STATIC_CHECK((is_same<Array33<int>, Array33i>::value));
|
||||
STATIC_CHECK((is_same<Array2X<float>, Array2Xf>::value));
|
||||
@ -37,6 +37,11 @@ EIGEN_DECLARE_TEST(type_alias)
|
||||
STATIC_CHECK((is_same<ArrayX<double>, ArrayXd>::value));
|
||||
STATIC_CHECK((is_same<Array4<double>, Array4d>::value));
|
||||
|
||||
STATIC_CHECK((is_same<Vector<float,3>, Vector3f>::value));
|
||||
STATIC_CHECK((is_same<Vector<int,Dynamic>, VectorXi>::value));
|
||||
STATIC_CHECK((is_same<RowVector<float,3>, RowVector3f>::value));
|
||||
STATIC_CHECK((is_same<RowVector<int,Dynamic>, RowVectorXi>::value));
|
||||
|
||||
#else
|
||||
std::cerr << "WARNING: c++11 type aliases not tested.\n";
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user