[GIT] ppl/ppl(pip): Clarified proper usage of PIP_Solution_Node alternative copy constructor.

Module: ppl/ppl Branch: pip Commit: 51e0707e9e734ceb72382bf004e69a1076ec46c2 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=51e0707e9e734...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Fri Feb 5 19:02:44 2010 +0100
Clarified proper usage of PIP_Solution_Node alternative copy constructor. The Boolean argument replaced by a tag struct type, since it was only used for overloading resolution purposes.
---
src/PIP_Tree.cc | 8 ++------ src/PIP_Tree.defs.hh | 12 ++++++++---- 2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc index cb62db1..b179e00 100644 --- a/src/PIP_Tree.cc +++ b/src/PIP_Tree.cc @@ -365,7 +365,7 @@ PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node& y) }
PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node& y, - bool empty_constraints) + No_Constraints) : PIP_Tree_Node(), tableau(y.tableau), basis(y.basis), @@ -377,10 +377,6 @@ PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node& y, sign(y.sign), solution(y.solution), solution_valid(y.solution_valid) { - if (!empty_constraints) { - constraints_ = y.constraints_; - artificial_parameters = y.artificial_parameters; - } }
PIP_Decision_Node::PIP_Decision_Node(PIP_Tree_Node* fcp, @@ -1887,7 +1883,7 @@ PIP_Solution_Node::solve(const PIP_Problem& problem,
// Create a solution node for the "true" version of current node. // FIXME: this is not exception safe. - PIP_Tree_Node* t_node = new PIP_Solution_Node(*this, true); + PIP_Tree_Node* t_node = new PIP_Solution_Node(*this, No_Constraints()); context.add_row(t_test);
// Recusively solve true node. diff --git a/src/PIP_Tree.defs.hh b/src/PIP_Tree.defs.hh index 4190f55..b1a233f 100644 --- a/src/PIP_Tree.defs.hh +++ b/src/PIP_Tree.defs.hh @@ -514,11 +514,15 @@ protected: //! Copy constructor. PIP_Solution_Node(const PIP_Solution_Node& y);
- /*! \brief - Copy constructor, allowing not to copy the constraint system and - artificial parameters + //! A tag type to select the alternative copy constructor. + struct No_Constraints {}; + + //! Alternative copy constructor. + /*! + This constructor differs from the default copy constructor in that + it will not copy the constraint system, nor the artificial parameters. */ - PIP_Solution_Node(const PIP_Solution_Node& y, bool empty_constraints); + PIP_Solution_Node(const PIP_Solution_Node& y, No_Constraints);
/*! \brief Populates the parametric simplex tableau using external data, if necessary
participants (1)
-
Enea Zaffanella