Open tiemuhua opened 3 years ago
第六章g2omain函数的第79行和第81行分别应该是 unique_ptr<BlockSolver> blockSolver_ptr(new BlockSolver(std::move(linearSolverPtr))); // 矩阵块求解器 g2o::OptimizationAlgorithmLevenberg *solver_ptr = new g2o::OptimizationAlgorithmLevenberg(move(blockSolver_ptr)); 书中直接用了unique_ptr作为构造函数的参数。 在传值过程中会进行拷贝,而unique_ptr是不允许通过拷贝复制函数进行拷贝的,必须用move函数来转移所有权
unique_ptr<BlockSolver> blockSolver_ptr(new BlockSolver(std::move(linearSolverPtr))); // 矩阵块求解器 g2o::OptimizationAlgorithmLevenberg *solver_ptr = new g2o::OptimizationAlgorithmLevenberg(move(blockSolver_ptr));
第六章g2omain函数的第79行和第81行分别应该是
unique_ptr<BlockSolver> blockSolver_ptr(new BlockSolver(std::move(linearSolverPtr))); // 矩阵块求解器 g2o::OptimizationAlgorithmLevenberg *solver_ptr = new g2o::OptimizationAlgorithmLevenberg(move(blockSolver_ptr));
书中直接用了unique_ptr作为构造函数的参数。 在传值过程中会进行拷贝,而unique_ptr是不允许通过拷贝复制函数进行拷贝的,必须用move函数来转移所有权