我在Windows機器上使用Eigen lib版本3.2.7。奇怪的結果當使用Eigen :: Array對象的自動說明符
我得到了奇怪的結果,當我跑下面的代碼:
auto a = Eigen::Array4i{ 95,95,95,95 }-Eigen::Array4i{ 0,1,0,1 };
Eigen::Array4i b = Eigen::Array4i{ 95,95,95,95 }-Eigen::Array4i{ 0,1,0,1 };
std::cout << a;
std::cout << b;
,而不是打印相同載體兩次,我得到了以下結果:
[0; 0; 0; 0][95; 94; 95; 94]
有趣的是,出現在發佈此問題模式。調試模式的輸出是正確的。
有沒有人對此有過解釋?
謝謝!
這可能是由於特徵表達模板延遲了評估。即「a」可能只是一個未評估的表達式,而不是一些具體的結果。你可以檢查「a」的類型嗎? https://eigen.tuxfamily.org/dox/group__TutorialMatrixArithmetic.html – sgarizvi