Я пытаюсь заполнить собственную матрицу (динамические строки, 2 столбца, двойные числа) из вектора, содержащего некоторую простую структуру декартовых точек, однако при использовании оператора <<
.
* я получаю ошибку1003 * Пример минимального сбоя (с использованием MSVC 2017):
#include <Eigen/Dense>
#include <vector>
struct point {
double x, y;
};
int main() {
std::vector<point> points = {
point{0.0, 0.0},
point{0.5, 0.0},
point{0.0, 1.0},
point{0.5, 1.0},
};
typedef Eigen::Matrix<double, Eigen::Dynamic, 2> CoordMatrix;
CoordMatrix X;
for (auto& p : points)
X << p.x, p.y;
return 0;
}
При выполнении этого я получаю сообщение об ошибке в строке X << point.x, point.y;
, говорящее: «Нет оператора <<
, совпадающего с этими операндами» (это также выбрасываетпри попытке передать X << 0.0, 0.0;
в режиме отладки).