Unsupported operations like "Matrix3d::Identity() op vector3d.asDiagonal()"

Submitted by Rhys Ulerich

Assigned to Nobody

Link to original bugzilla bug (#610)
Version: 3.4 (development)

Description

As discussed in http://listengine.tuxfamily.org/lists.tuxfamily.org/eigen/2013/06/msg00002.html
the following does not compile but should...

#include <Eigen/Core>

int main()
{
using namespace Eigen;

// Works as expected  
Matrix3d A1;  
Matrix3d B1 = Matrix3d::Identity() * A1;  
Matrix3d C1 = Matrix3d::Identity() + A1;  
Matrix3d D1 = Matrix3d::Identity() - A1;  

// Does not work but I expect that it should  
Vector3d A2;  
Matrix3d B2 = Matrix3d::Identity() * A2.asDiagonal();  
Matrix3d C2 = Matrix3d::Identity() + A2.asDiagonal();  
Matrix3d D2 = Matrix3d::Identity() - A2.asDiagonal();  

return 0;  

}

Depends on

#112 #520 #99 (closed)

Blocking

#814 (closed)

Edited by Rasmus Munk Larsen