今天写了一个小程序在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下输出:
Debug下输出:
以后还是不要偷懒。。规范化写代码。。