如何解决使用全局变量初始化单位矩阵不起作用
我想用一个全局变量n = 7
来初始化一个7x7
单位矩阵,如下代码所示:
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
using Eigen::MatrixXd;
int n = 7;
int main()
{
MatrixXd I = Matrix<double,n,n>::Identity();
cout << I << endl;
}
编译时,我得到 error: the variable n is not usable in a constant expression
。有没有办法使用全局变量来初始化单位矩阵?
解决方法
如错误消息所述,您需要一个编译时常量。
您可以使用 n
constexpr
#include <iostream>
#include <Eigen/Dense>
using namespace std;
using namespace Eigen;
using Eigen::MatrixXd;
constexpr int n = 7;
int main()
{
MatrixXd I = Matrix<double,n,n>::Identity();
cout << I << endl;
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。