Вы не можете. Аргументы шаблона должны быть константами времени компиляции.
const int SIZE_ = 2;
- это константа времени компиляции, нет никакого способа, которым SIZE_
может когда-либо иметь значение, отличное от 2 здесь. Компилятор знает это и может безопасно создать тип Eigen::Matrix<float, 2, 2>
.
const int SIZE_ = someNonConstantExpression;
не является константой времени компиляции. Его нельзя использовать в аргументах шаблона.
Вы не можете заставить компилятор принимать значения времени выполнения, где требуются значения времени компиляции, например, в шаблонах. Однако в Eigen есть динамические матрицы (размер которых не требуется знать во время компиляции), которые вы можете использовать вместо этого.