前言
在使用Eigen库时,偶然遇到的一些报错信息,或程序中断。
有解决的在这里列出解决方法。
1. C2338
错误 C2338 YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY
问题原因:
将不同类型的矩阵或矢量进行了赋值、复制等操作。如:
MatrixXd m1(1, 1);
MatrixXi m2(1, 1);
m1 << 1.0;
m2 = m1;
解决方法:
在赋值等操作时,使用类型转换。如:
MatrixXd m1(1, 1);
MatrixXi m2(1, 1);
m1 << 1.0;
m2 = m1.cast<int>();