apply Gael's idea for auto transpose in mixed fixed/dynamic case
diff --git a/Eigen/src/Core/Assign.h b/Eigen/src/Core/Assign.h index 87e7a13..f3521d3 100644 --- a/Eigen/src/Core/Assign.h +++ b/Eigen/src/Core/Assign.h
@@ -412,8 +412,10 @@ bool EvalBeforeAssigning = (int(OtherDerived::Flags) & EvalBeforeAssigningBit) != 0, bool NeedToTranspose = Derived::IsVectorAtCompileTime && OtherDerived::IsVectorAtCompileTime - && int(Derived::RowsAtCompileTime) == int(OtherDerived::ColsAtCompileTime) - && int(Derived::ColsAtCompileTime) == int(OtherDerived::RowsAtCompileTime) + && ((int(Derived::RowsAtCompileTime) == 1 && int(OtherDerived::ColsAtCompileTime) == 1) + | // FIXME | instead of || to please GCC 4.4.0 stupid warning "suggest parentheses around &&". + // revert to || as soon as not needed anymore. + (int(Derived::ColsAtCompileTime) == 1 && int(OtherDerived::RowsAtCompileTime) == 1)) && int(Derived::SizeAtCompileTime) != 1> struct ei_assign_selector;