Bazel 在转换矩阵类型时给出编译错误

Bazel gives compilation error when converting matrix types

我正在使用 bazel 构建一些代码。该代码在执行圆顶矩阵分配时出现编译错误。

typedef Eigen::Matrix<double,44,44> stateMat_t;
typedef Eigen::Matrix<double,44,44> stateTens_t[44];   //44 x 44 x 44


// bunch of other code...

typedef std::vector<stateMat_t> stateTensTab_t;

// bunch of other code...

stateTensTab_t fxxList;
stateTens_t fxx;

// bunch of other code

fxxList[j][k] = fxx[j];

//bunch of other code

我希望代码能够成功编译,但出现以下错误:

error: cannot convert 'Eigen::Matrix<double, 44, 44>' to 'Eigen::DenseCoeffsBase<Eigen::Matrix<double, 44, 44>, 1>::Scalar {aka double}' in assignment
                     fxxList[j][k] = fxx[j];

您正在尝试将 Matrix<double,44,44> 分配给 double&,因为这就是 Matrix::operator[] returns(您传递 k 的运算符) .单独调用该运算符也应该失败,因为 stateMat_t 在编译时不是向量。