Extended the comma initializer to support xpr on the right side:
Matrix3i mat; Vector2i vec(33,66);
mat << vec.transpose(), 99,
vec, Matrix2i::random();
diff --git a/test/basicstuff.cpp b/test/basicstuff.cpp
index 56f41ed..bd009eb 100644
--- a/test/basicstuff.cpp
+++ b/test/basicstuff.cpp
@@ -105,8 +105,28 @@
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8) );
VERIFY_RAISES_ASSERT( (m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9, 10) );
- m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
+
double data[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
+
+ m3 = Matrix3d::random();
+ m3 << 1, 2, 3, 4, 5, 6, 7, 8, 9;
+ VERIFY_IS_APPROX(m3, (Matrix<double,3,3,RowMajor>::map(data)) );
+
+ Vector3d vec[3];
+ vec[0] << 1, 4, 7;
+ vec[1] << 2, 5, 8;
+ vec[2] << 3, 6, 9;
+ m3 = Matrix3d::random();
+ m3 << vec[0], vec[1], vec[2];
+ VERIFY_IS_APPROX(m3, (Matrix<double,3,3,RowMajor>::map(data)) );
+
+ vec[0] << 1, 2, 3;
+ vec[1] << 4, 5, 6;
+ vec[2] << 7, 8, 9;
+ m3 = Matrix3d::random();
+ m3 << vec[0].transpose(),
+ 4, 5, 6,
+ vec[2].transpose();
VERIFY_IS_APPROX(m3, (Matrix<double,3,3,RowMajor>::map(data)) );
}
}