【发布时间】:2017-01-10 19:33:44
【问题描述】:
我正在尝试实现一个具有来自Eigen 库类型的一些静态成员的类,但是我收到以下编译器错误
kalman.cpp:3:28: error: expected initializer before ‘<<’ token
Eigen::Matrix2d Kalman::AA << 1,2,3,4;
^
我不知道如何解决它。 Here,在文档库中有 Comma-initialization 部分描述了所选的初始化格式。当然, 在这样一个简单的主源代码中
#include <iostream>
#include "Eigen/Dense"
int main()
{
Eigen::Matrix2d m;
m << 1,2,3,4;
std::cout << m << std::endl;
}
一切都按预期工作。但是,当我尝试使用 Eigen::Matrix2d 类型的静态成员变量来执行此操作时,如下所示
标题
#ifndef KALMAN_H
#define KALMAN_H
#include <iostream>
#include "Eigen/Dense"
class Kalman{
public:
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
static Eigen::Matrix2d AA;
};
#endif /* KALMAN_H */
来源
#include "kalman.hpp"
Eigen::Matrix2d Kalman::AA << 1,2,3,4;
我收到了上述错误。我认为这可能与某种如何创建静态成员对象有关,但说实话我不知道。任何提示或推荐内容将不胜感激。
谢谢
【问题讨论】:
标签: c++ static-methods eigen