我正在用 C++ 编写一个类来概括两个稀疏矩阵求解器(SparseLU 和 Sparse Cholesky)。当我尝试使用三元运算符时,它说操作数类型不兼容,但如果我使用 If 语句,代码就会编译。
错误 2 错误:操作数类型不兼容(“const Eigen::Solve < Eigen::SimplicialLDLT < Eigen::SparseMatrix < double, 0, int > , 1, Eigen::AMDOrdering < int >> , Eigen::Matrix < double , -1, 1, 0, -1, 1 >> " 和 "const Eigen::Solve < Eigen::SparseLU < Eigen::SparseMatrix < double, 0, int > , Eigen::COLAMDOrdering < int >> , Eigen ::矩阵 < 双精度, -1, 1, 0, -1, 1 >> ")
eigen::VectorXd solve(eigen::VectorXd &b) {
return is_cholesky ? cholesky.solve(b) : lu.solve(b); // ERROR …Run Code Online (Sandbox Code Playgroud)