我对Eigen库和C ++还是陌生的。我正在测试一些代码,但我不明白为什么这样做
#include <iostream>
#include <Eigen/Dense>
using namespace std;
int main()
{
int a = 2;
const int SIZE_ = a;
Eigen::Matrix<float, SIZE_, SIZE_> test;
return 0;
}
不编译,与此同时
#include <iostream>
#include <Eigen/Dense>
using namespace std;
int main()
{
const int SIZE_ = 2;
Eigen::Matrix<float, SIZE_, SIZE_> test;
return 0;
}
效果很好。我如何更改第一个代码以使其起作用(即SIZE_将由可能具有不同值的变量启动)。
干杯!
你不能。模板参数必须是编译时常量。
[如果您希望Matrix的大小的值来自另一种方法(但仍在编译时),则可以使用如下的constexpr
方法: