diff options
author | Gael Guennebaud <g.gael@free.fr> | 2019-02-20 14:43:05 +0100 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2019-02-20 14:43:05 +0100 |
commit | 44b54fa4a3618922e06abdca9c555b8697698237 (patch) | |
tree | 3d61d55a0d8bfd4d289eea0558d8636bfc834fec /test/type_alias.cpp | |
parent | 7195f008ced2ec7fc8a1926d06b7cd797e9f3642 (diff) |
Protect c++11 type alias with Eigen's macro, and add respective unit test.
Diffstat (limited to 'test/type_alias.cpp')
-rw-r--r-- | test/type_alias.cpp | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/test/type_alias.cpp b/test/type_alias.cpp new file mode 100644 index 000000000..f9b0efc5d --- /dev/null +++ b/test/type_alias.cpp @@ -0,0 +1,43 @@ +// This file is part of Eigen, a lightweight C++ template library +// for linear algebra. +// +// Copyright (C) 2019 Gael Guennebaud <gael.guennebaud@inria.fr> +// +// This Source Code Form is subject to the terms of the Mozilla +// Public License v. 2.0. If a copy of the MPL was not distributed +// with this file, You can obtain one at http://mozilla.org/MPL/2.0/. + +#include "main.h" + +EIGEN_DECLARE_TEST(type_alias) +{ + using namespace internal; + + // To warm up, some basic checks: + STATIC_CHECK((is_same<MatrixXd,Matrix<double,Dynamic,Dynamic> >::value)); + STATIC_CHECK((is_same<Matrix2f,Matrix<float,2,2> >::value)); + STATIC_CHECK((is_same<Array33i,Array<int,3,3> >::value)); + +#if EIGEN_HAS_CXX11 + + STATIC_CHECK((is_same<MatrixX<double>, MatrixXd>::value)); + STATIC_CHECK((is_same<MatrixX<int>, MatrixXi>::value)); + STATIC_CHECK((is_same<Matrix2<int>, Matrix2i>::value)); + STATIC_CHECK((is_same<Matrix2X<float>, Matrix2Xf>::value)); + STATIC_CHECK((is_same<MatrixX4<double>, MatrixX4d>::value)); + STATIC_CHECK((is_same<VectorX<int>, VectorXi>::value)); + 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)); + STATIC_CHECK((is_same<ArrayX4<double>, ArrayX4d>::value)); + STATIC_CHECK((is_same<ArrayX<double>, ArrayXd>::value)); + STATIC_CHECK((is_same<Array4<double>, Array4d>::value)); + +#else + std::cerr << "WARNING: c++11 type aliases not tested.\n"; +#endif +} |