使用 gcc 9.4.0 和 Eigen 3.3.7,以下编译没有问题:
\n#include <Eigen/Dense>\n\nint main(int Argc, char *Argv[]) {\n Eigen::Matrix<int, 1, 4> d = {1, 2, 3, 4};\n}\nRun Code Online (Sandbox Code Playgroud)\n将长度增加 1 会引发错误:
\n#include <Eigen/Dense>\n\nint main(int Argc, char *Argv[]) {\n Eigen::Matrix<int, 1, 5> d = {1, 2, 3, 4, 5};\n }\n\nfoo.cpp:6:48: error: could not convert \xe2\x80\x98{1, 2, 3, 4, 5}\xe2\x80\x99 from \xe2\x80\x98<brace-enclosed initializer list>\xe2\x80\x99 to \xe2\x80\x98Eigen::Matrix<int, 1, 5>\xe2\x80\x99\n 6 | Eigen::Matrix<int, 1, 5> d = {1, 2, 3, 4, 5};\n | ^\n | |\n | …Run Code Online (Sandbox Code Playgroud)