In C++11 destructors do not throw by default (fix CommaInitializer unit test)

This commit is contained in:
Gael Guennebaud 2015-02-20 09:28:34 +01:00
parent ab41652d81
commit b192e29eae
2 changed files with 11 additions and 8 deletions

View File

@ -105,6 +105,9 @@ struct CommaInitializer
EIGEN_DEVICE_FUNC
inline ~CommaInitializer()
#if defined VERIFY_RAISES_ASSERT && defined EIGEN_EXCEPTIONS
throw(Eigen::eigen_assert_exception)
#endif
{
eigen_assert((m_row+m_currentBlockRows) == m_xpr.rows()
&& m_col == m_xpr.cols()

View File

@ -158,20 +158,20 @@ namespace Eigen
#define VERIFY_RAISES_ASSERT(a) \
{ \
Eigen::no_more_assert = false; \
Eigen::eigen_assert_list.clear(); \
Eigen::internal::push_assert = true; \
Eigen::eigen_assert_list.clear(); \
Eigen::internal::push_assert = true; \
Eigen::report_on_cerr_on_assert_failure = false; \
try { \
a; \
std::cerr << "One of the following asserts should have been triggered:\n"; \
for (uint ai=0 ; ai<eigen_assert_list.size() ; ++ai) \
std::cerr << " " << eigen_assert_list[ai] << "\n"; \
for (uint ai=0 ; ai<eigen_assert_list.size() ; ++ai) \
std::cerr << " " << eigen_assert_list[ai] << "\n"; \
VERIFY(Eigen::should_raise_an_assert && # a); \
} catch (Eigen::eigen_assert_exception) { \
Eigen::internal::push_assert = false; VERIFY(true); \
} catch (Eigen::eigen_assert_exception) { \
Eigen::internal::push_assert = false; VERIFY(true); \
} \
Eigen::report_on_cerr_on_assert_failure = true; \
Eigen::internal::push_assert = false; \
Eigen::internal::push_assert = false; \
}
#endif //EIGEN_EXCEPTIONS
@ -194,7 +194,7 @@ namespace Eigen
a; \
VERIFY(Eigen::should_raise_an_assert && # a); \
} \
catch (Eigen::eigen_assert_exception&) { VERIFY(true); } \
catch (Eigen::eigen_assert_exception&) { VERIFY(true); } \
Eigen::report_on_cerr_on_assert_failure = true; \
}
#endif //EIGEN_EXCEPTIONS