我想用一种简单的方法来复制使用Eigen3 MatrixXd类的矩阵。为此,我使用新方法创建头文件,并使用宏uEIGEN_MATRIXBASE_PLUGIN包含在编译中。
我想创建一个名为copyMatrix()的方法,它与do完全相同 A = B. 但是这种格式: A.copyMatrix(B)。
当我尝试使用以下代码对其进行编码时:
template<typename OtherDerived>
inline void copyMatrix(const MatrixBase<OtherDerived>& other) const
{
derived() = other.derived();
}
我有编译错误,例如: 错误C2678:二进制'=':找不到哪个运算符采用'const Eigen :: Matrix'类型的左手操作数(或者没有可接受的转换)
这是正确的语法?
答案 0 :(得分:1)
这是因为您的方法copyMatrix
为const
,只需删除它:
template<typename OtherDerived>
inline void copyMatrix(const MatrixBase<OtherDerived>& other)
{
derived() = other.derived();
}