In the function QuaternionBase<Derived>::setFromTwoVectors() (file Quaternion.h line 587), I think the scalar -1 in the code
c = max<Scalar>(c, -1);
should be casted to Scalar like the following
c = max<Scalar>(c, Scalar(-1));
as other scalars were done in the code.
This would be helpful for some scalar types like ceres::Jet. A compile error will occur if it is not casted.
Fixed in devel and 3.2.
Thanks for the report
*** Bug 1163 has been marked as a duplicate of this bug. ***