mirror of
https://github.com/ceres-solver/ceres-solver.git
synced 2026-08-30 00:50:37 +08:00
Fix broken constant parameter blocks
This fixes the bug introduced in a previous commit, and adds a test to check that constant parameter blocks work as expected. This also refactors the Solver/SolverImpl split so that SolverImpl is no longer a friend of Problem; instead, Solver is. This makes it possible to verify the invariant on parameter block states in the unit test, and is a more symmetric design anyway. Bug: 51 Change-Id: Id503f5b526cfb8bc24aae3aaad2e414b14063d78
This commit is contained in:
@@ -50,13 +50,13 @@ namespace ceres {
|
||||
class CostFunction;
|
||||
class LossFunction;
|
||||
class LocalParameterization;
|
||||
class Solver;
|
||||
|
||||
namespace internal {
|
||||
class Preprocessor;
|
||||
class ProblemImpl;
|
||||
class ParameterBlock;
|
||||
class ResidualBlock;
|
||||
class SolverImpl;
|
||||
} // namespace internal
|
||||
|
||||
// A ResidualBlockId is a handle clients can use to delete residual
|
||||
@@ -255,7 +255,7 @@ class Problem {
|
||||
int NumResiduals() const;
|
||||
|
||||
private:
|
||||
friend class internal::SolverImpl;
|
||||
friend class Solver;
|
||||
internal::scoped_ptr<internal::ProblemImpl> problem_impl_;
|
||||
CERES_DISALLOW_COPY_AND_ASSIGN(Problem);
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user