diff options
Diffstat (limited to 'eigen/test/ref.cpp')
-rw-r--r-- | eigen/test/ref.cpp | 27 |
1 files changed, 10 insertions, 17 deletions
diff --git a/eigen/test/ref.cpp b/eigen/test/ref.cpp index 8297e26..769db04 100644 --- a/eigen/test/ref.cpp +++ b/eigen/test/ref.cpp @@ -12,26 +12,10 @@ #undef EIGEN_DEFAULT_TO_ROW_MAJOR #endif -static int nb_temporaries; - -inline void on_temporary_creation(int) { - // here's a great place to set a breakpoint when debugging failures in this test! - nb_temporaries++; -} - - -#define EIGEN_DENSE_STORAGE_CTOR_PLUGIN { on_temporary_creation(size); } +#define TEST_ENABLE_TEMPORARY_TRACKING #include "main.h" -#define VERIFY_EVALUATION_COUNT(XPR,N) {\ - nb_temporaries = 0; \ - XPR; \ - if(nb_temporaries!=N) std::cerr << "nb_temporaries == " << nb_temporaries << "\n"; \ - VERIFY( (#XPR) && nb_temporaries==N ); \ - } - - // test Ref.h // Deal with i387 extended precision @@ -248,6 +232,12 @@ int test_ref_overload_fun1(Ref<MatrixXf> ) { return 3; } int test_ref_overload_fun2(Ref<const MatrixXd> ) { return 4; } int test_ref_overload_fun2(Ref<const MatrixXf> ) { return 5; } +void test_ref_ambiguous(const Ref<const ArrayXd> &A, Ref<ArrayXd> B) +{ + B = A; + B = A - A; +} + // See also bug 969 void test_ref_overloads() { @@ -260,6 +250,9 @@ void test_ref_overloads() VERIFY( test_ref_overload_fun2(Ad)==4 ); VERIFY( test_ref_overload_fun2(Ad+Bd)==4 ); VERIFY( test_ref_overload_fun2(Af+Bf)==5 ); + + ArrayXd A, B; + test_ref_ambiguous(A, B); } void test_ref() |