bug #882: add const-correctness failtests for CwiseUnaryView, TriangularView, and SelfAdjointView.

This commit is contained in:
Gael Guennebaud 2014-09-23 10:26:02 +02:00
parent 3878e6f170
commit 72569f17ec
7 changed files with 99 additions and 0 deletions

View File

@ -7,6 +7,9 @@ ei_add_failtest("block_nonconst_ctor_on_const_xpr_1")
ei_add_failtest("block_nonconst_ctor_on_const_xpr_2")
ei_add_failtest("transpose_nonconst_ctor_on_const_xpr")
ei_add_failtest("diagonal_nonconst_ctor_on_const_xpr")
ei_add_failtest("cwiseunaryview_nonconst_ctor_on_const_xpr")
ei_add_failtest("triangularview_nonconst_ctor_on_const_xpr")
ei_add_failtest("selfadjointview_nonconst_ctor_on_const_xpr")
ei_add_failtest("const_qualified_block_method_retval_0")
ei_add_failtest("const_qualified_block_method_retval_1")
@ -25,6 +28,9 @@ ei_add_failtest("block_on_const_type_actually_const_0")
ei_add_failtest("block_on_const_type_actually_const_1")
ei_add_failtest("transpose_on_const_type_actually_const")
ei_add_failtest("diagonal_on_const_type_actually_const")
ei_add_failtest("cwiseunaryview_on_const_type_actually_const")
ei_add_failtest("triangularview_on_const_type_actually_const")
ei_add_failtest("selfadjointview_on_const_type_actually_const")
if (EIGEN_FAILTEST_FAILURE_COUNT)
message(FATAL_ERROR

View File

@ -0,0 +1,15 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(CV_QUALIFIER Matrix3d &m){
CwiseUnaryView<internal::scalar_real_ref_op<double>,Matrix3d> t(m);
}
int main() {}

View File

@ -0,0 +1,16 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(){
MatrixXf m;
CwiseUnaryView<internal::scalar_real_ref_op<double>,CV_QUALIFIER MatrixXf>(m).coeffRef(0, 0) = 1.0f;
}
int main() {}

View File

@ -0,0 +1,15 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(CV_QUALIFIER Matrix3d &m){
SelfAdjointView<Matrix3d,Upper> t(m);
}
int main() {}

View File

@ -0,0 +1,16 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(){
MatrixXf m;
SelfAdjointView<CV_QUALIFIER MatrixXf,Upper>(m).coeffRef(0, 0) = 1.0f;
}
int main() {}

View File

@ -0,0 +1,15 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(CV_QUALIFIER Matrix3d &m){
TriangularView<Matrix3d,Upper> t(m);
}
int main() {}

View File

@ -0,0 +1,16 @@
#include "../Eigen/Core"
#ifdef EIGEN_SHOULD_FAIL_TO_BUILD
#define CV_QUALIFIER const
#else
#define CV_QUALIFIER
#endif
using namespace Eigen;
void foo(){
MatrixXf m;
TriangularView<CV_QUALIFIER MatrixXf,Upper>(m).coeffRef(0, 0) = 1.0f;
}
int main() {}