operator* allows premultiplication of a Quaterniond by a scalar and returns invalid results

Submitted by ada..@..il.com

Assigned to Nobody

Link to original bugzilla bug (#758)
Version: 3.2

Description

The following code should either not compile or give v1 = 4 * v2

Quaterniond q1 = Quaterniond::Identity();
Vector3d v1 = 4 * q1 * Vector3d::UnitZ();
Vector3d v2 = q1 * Vector3d::UnitZ();

Instead we get:

v1
0
0
0
v2
0
0
1

Blocking

#459 #558 (closed) #560

Edited by Eigen Bugzilla