Из документации ,
Конструктор по умолчанию всегда доступен, никогда не выполняет динамического распределения памяти c и никогда не инициализирует матричные коэффициенты.
Обратите внимание, что при использовании конструктора по умолчанию для динамических c матриц также не назначаются их размеры. Итак,
Eigen::MatrixXd a;
- это матрица 0x0, а
Eigen::MatrixXd b(10, 10);
- это матрица 10x10 с неинициализированными коэффициентами;
Да, вы можете проверить, если матрица все еще 0x0, чтобы проверить, было ли ему что-то назначено.
Обратите внимание, что если размер не является динамическим c, он будет иметь определенное количество строк и / или столбцов, и это усложнит понимание того, было ли что-то назначено ему: вам следует инициализировать значения и затем проверить, были ли они изменены.