aboutsummaryrefslogtreecommitdiffhomepage
path: root/test/indexed_view.cpp
diff options
context:
space:
mode:
authorGravatar Gael Guennebaud <g.gael@free.fr>2017-01-19 20:34:18 +0100
committerGravatar Gael Guennebaud <g.gael@free.fr>2017-01-19 20:34:18 +0100
commit4d302a080c775290acf23935f233cebbe19540f4 (patch)
tree1c2512ce2b8f954e2a193bcba851af3077bba55d /test/indexed_view.cpp
parent54f3fbee246744d2cb3aeeb9c52ee32a159b29c5 (diff)
Recover compile-time size from seq(A,B) when A and B are fixed values. (c++11 only)
Diffstat (limited to 'test/indexed_view.cpp')
-rw-r--r--test/indexed_view.cpp20
1 files changed, 18 insertions, 2 deletions
diff --git a/test/indexed_view.cpp b/test/indexed_view.cpp
index 751f98344..e70a9c616 100644
--- a/test/indexed_view.cpp
+++ b/test/indexed_view.cpp
@@ -55,8 +55,7 @@ is_same_eq(const T1& a, const T2& b)
}
template<typename T1,typename T2>
-typename internal::enable_if<internal::is_same<T1,T2>::value,bool>::type
-is_same_seq_type(const T1& a, const T2& b)
+bool is_same_seq(const T1& a, const T2& b)
{
bool ok = a.first()==b.first() && a.size() == b.size() && Index(a.incrObject())==Index(b.incrObject());;
if(!ok)
@@ -67,6 +66,15 @@ is_same_seq_type(const T1& a, const T2& b)
return ok;
}
+template<typename T1,typename T2>
+typename internal::enable_if<internal::is_same<T1,T2>::value,bool>::type
+is_same_seq_type(const T1& a, const T2& b)
+{
+ return is_same_seq(a,b);
+}
+
+
+
#define VERIFY_EQ_INT(A,B) VERIFY_IS_APPROX(int(A),int(B))
void check_indexed_view()
@@ -193,6 +201,14 @@ void check_indexed_view()
VERIFY( is_same_seq_type( seqN(2,fix<Dynamic>(5),3), seqN(2,5,fix<DynamicIndex>(3)) ) );
VERIFY( is_same_seq_type( seqN(2,fix<5>(5),fix<-2>), seqN(2,fix<5>,fix<-2>()) ) );
+ VERIFY( is_same_seq_type( seq(2,fix<5>), seqN(2,4) ) );
+#if EIGEN_HAS_CXX11
+ VERIFY( is_same_seq_type( seq(fix<2>,fix<5>), seqN(fix<2>,fix<4>) ) );
+#else
+ // sorry, no compile-time size recovery in c++98/03
+ VERIFY( is_same_seq( seq(fix<2>,fix<5>), seqN(fix<2>,fix<4>) ) );
+#endif
+
VERIFY( (A(seqN(2,fix<5>), 5)).RowsAtCompileTime == 5);
VERIFY( (A(4, all)).ColsAtCompileTime == Dynamic);
VERIFY( (A(4, all)).RowsAtCompileTime == 1);