auto与Eigen混用Debug和Release模式下值会变化

今天写了一个小程序在Debug下运行的好好的,突然觉得大功告成,准备在Release下编译进行打包的时候,突然发现两种模式下运行出来的结果不一样。。崩溃。。。

 然后开始了漫长的调试过程,两个小时过去了终于找到了错误在哪。原来是在使用矩阵计算过程中使用了auto,再次使用矩阵的时候在Release模式下就会发现矩阵的值会变化,在Debug下不会变化。

代码:

				auto x2 = transMatrix(-45.0, "y")*x1;
				cout << "x2" << x2 << endl;
				auto mt3 = calRefractVec(x2);
				cout << "x2" << x2 << endl;

Release下输出:

auto与Eigen混用Debug和Release模式下值会变化

Debug下输出:

auto与Eigen混用Debug和Release模式下值会变化

以后还是不要偷懒。。规范化写代码。。

上一篇:Eigen permutate columns/rows


下一篇:利用Opencl加速Eigen矩阵(二)