2016-02-12 4 views
0

Скажут один имеют следующий код:Эйген Динамического размера матрицы

cout<< sizeof(Eigen::Matrix<double, -1, -1 , 0 , 10, 10>)<<endl; 
cout<< sizeof(Eigen::Matrix<double, -1, -1>)<<endl; 

Первые линейные выходы 3664 байт, а второй, 24 байт.

Я пытаюсь понять, почему это задает максимальный размер?

Архитектура компьютера x64.

ответ

1

гм, вы, вероятно, сделал копировать-вставить ошибку, потому что, как и ожидалось, я получаю:

816 
24 

Действительно, как объяснить в документации Eigen::Matrix, указав максимальные размеры при компиляции количеств времени, в ваш случай, до следующей структуры:

struct { 
    double data[10*10]; // 800 Bytes 
    long rows, cols; // 16 Bytes 
}; 
Смежные вопросы