다음 코드는 예기치 않게 (0, 1, 0) 대신 (0, -1, 0)을 할당합니다. 왜? 어떤 아이디어? 어떻게됩니까고유 및 삼항 연산자가있는 원하지 않는/예기치 않은 컴파일러 - 마법
#include <Eigen/Dense>
int main()
{
const bool useFirst = false;
// This is the original use-case.
const Eigen::Vector3d vect1
= useFirst ? -Eigen::Vector3d::UnitZ() : Eigen::Vector3d::UnitY();
// This version is somewhat simplified, but exhibits the same problem.
const Eigen::Vector3d unitZ(0.0, 0.0, 1.0), unitY(0.0, 1.0, 0.0);
const Eigen::Vector3d vect2 = useFirst ? -unitZ : unitY;
// FYI, this version does not compile (?).
// const Eigen::Vector3d vect3
// = useFirst ? -unitZ : Eigen::Vector3d::UnitY();
}
내 컴퓨터에서'vect1' 버전은 컴파일되지 않지만'vect2' 버전은 의도 한대로 (0, 1, 0)을 생성합니다. – Cholts