Implement better static assertion checking to make sure that the first assertion is a static one and not a runtime one.

This commit is contained in:
Gael Guennebaud
2018-03-09 10:00:51 +01:00
parent d820ab9edc
commit f6be7289d7
3 changed files with 40 additions and 6 deletions

View File

@@ -7,7 +7,7 @@
// 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/.
#define EIGEN_NO_STATIC_ASSERT
#define TEST_CHECK_STATIC_ASSERTIONS
#include "main.h"
// This file tests the basic selfadjointView API,
@@ -47,8 +47,8 @@ template<typename MatrixType> void selfadjoint(const MatrixType& m)
m4 -= m1.template selfadjointView<Lower>();
VERIFY_IS_APPROX(m4, m2-m3);
VERIFY_RAISES_ASSERT(m2.template selfadjointView<StrictlyUpper>());
VERIFY_RAISES_ASSERT(m2.template selfadjointView<UnitLower>());
VERIFY_RAISES_STATIC_ASSERT(m2.template selfadjointView<StrictlyUpper>());
VERIFY_RAISES_STATIC_ASSERT(m2.template selfadjointView<UnitLower>());
}
void bug_159()