首页 > 解决方案 > 特征,不能比较相同类型的矩阵

问题描述

我收到以下编译器错误:

../Src/Engine/MasterEngine/Geometry/MatrixMesh.hpp:153:31: error: no match for ‘operator==’ (operand types are ‘SBM’ {aka ‘Eigen::SparseVector<bool, 0, int>’} and ‘SBM’ {aka ‘Eigen::SparseVector<bool, 0, int>’})
  153 |         SBM(closure_vertices) == vertices &&

对于此代码:


bool IsComplex(
    const Eigen::SparseMatrix<bool>& edge_matrix,
    const Eigen::SparseMatrix<bool>& face_matrix,
    const std::array<Eigen::SparseVector<bool>, 3>& simplices)
{
    SBM& vertices = simplices[0];
    SBM& edges = simplices[1];
    SBM& faces = simplices[2];

    const auto[closure_vertices, closure_edges, closure_faces] =
        Closure(edge_matrix, face_matrix, {vertices, edges, faces});

    return
        SBM(closure_vertices) == vertices &&
        SBM(closure_edges) == edges &&
        SBM(closure_faces) == faces;
}

没看懂,类型是一样的

标签: c++typescompiler-errorseigen

解决方案


推荐阅读