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
在编译时不是向量。
我正在使用 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
在编译时不是向量。