C++ Reference
C++ Reference: Routing
Detailed Description
The class IntExpr is the base of all integer expressions in constraint programming.
It contains the basic protocol for an expression:
- setting and modifying its bound
- querying if it is bound
- listening to events modifying its bounds
- casting it into a variable (instance of IntVar)
Definition at line 3788 of file constraint_solver.h.
Public Member Functions | |
| IntExpr (Solver *const s) | |
| ~IntExpr () override | |
| virtual int64 | Min () const =0 |
| virtual void | SetMin (int64 m)=0 |
| virtual int64 | Max () const =0 |
| virtual void | SetMax (int64 m)=0 |
| virtual void | Range (int64 *l, int64 *u) |
| By default calls Min() and Max(), but can be redefined when Min and Max code can be factorized. More... | |
| virtual void | SetRange (int64 l, int64 u) |
| This method sets both the min and the max of the expression. More... | |
| virtual void | SetValue (int64 v) |
| This method sets the value of the expression. More... | |
| virtual bool | Bound () const |
| Returns true if the min and the max of the expression are equal. More... | |
| virtual bool | IsVar () const |
| Returns true if the expression is indeed a variable. More... | |
| virtual IntVar * | Var ()=0 |
| Creates a variable from the expression. More... | |
| IntVar * | VarWithName (const std::string &name) |
| Creates a variable from the expression and set the name of the resulting var. More... | |
| virtual void | WhenRange (Demon *d)=0 |
| Attach a demon that will watch the min or the max of the expression. More... | |
| void | WhenRange (Solver::Closure closure) |
| Attach a demon that will watch the min or the max of the expression. More... | |
| void | WhenRange (Solver::Action action) |
| Attach a demon that will watch the min or the max of the expression. More... | |
| virtual void | Accept (ModelVisitor *const visitor) const |
| Accepts the given visitor. More... | |
| std::string | DebugString () const override |
| Solver * | solver () const |
| void | FreezeQueue () |
| This method freezes the propagation queue. More... | |
| void | UnfreezeQueue () |
| This method unfreezes the propagation queue. More... | |
| void | EnqueueDelayedDemon (Demon *const d) |
| This method pushes the demon onto the propagation queue. More... | |
| void | EnqueueVar (Demon *const d) |
| void | ExecuteAll (const SimpleRevFIFO< Demon * > &demons) |
| void | EnqueueAll (const SimpleRevFIFO< Demon * > &demons) |
| void | set_action_on_fail (Solver::Action a) |
| void | reset_action_on_fail () |
| This method clears the failure callback. More... | |
| void | set_variable_to_clean_on_fail (IntVar *v) |
| Shortcut for variable cleaner. More... | |
| virtual std::string | name () const |
| Object naming. More... | |
| void | set_name (const std::string &name) |
| bool | HasName () const |
| Returns whether the object has been named or not. More... | |
| virtual std::string | BaseName () const |
| Returns a base name for automatic naming. More... | |
Constructor & Destructor Documentation
◆ IntExpr()
Definition at line 3790 of file constraint_solver.h.
◆ ~IntExpr()
|
inlineoverride |
Definition at line 3791 of file constraint_solver.h.
Member Function Documentation
◆ Accept()
|
virtual |
Accepts the given visitor.
Reimplemented in IntVar.
◆ BaseName()
|
virtualinherited |
Returns a base name for automatic naming.
Reimplemented in BooleanVar.
◆ Bound()
|
inlinevirtual |
Returns true if the min and the max of the expression are equal.
Reimplemented in BooleanVar.
Definition at line 3814 of file constraint_solver.h.
◆ DebugString()
|
inlineoverridevirtualinherited |
Reimplemented from BaseObject.
Reimplemented in Pack, Assignment, SequenceVar, Constraint, BooleanVar, and GlobalVehicleBreaksConstraint.
Definition at line 3124 of file constraint_solver.h.
◆ EnqueueAll()
|
inherited |
◆ EnqueueDelayedDemon()
|
inlineinherited |
This method pushes the demon onto the propagation queue.
It will be processed directly if the queue is empty. It will be enqueued according to its priority otherwise.
Definition at line 3144 of file constraint_solver.h.
◆ EnqueueVar()
|
inlineinherited |
Definition at line 3145 of file constraint_solver.h.
◆ ExecuteAll()
|
inherited |
◆ FreezeQueue()
|
inlineinherited |
This method freezes the propagation queue.
It is useful when you need to apply multiple modifications at once.
Definition at line 3135 of file constraint_solver.h.
◆ HasName()
|
inherited |
Returns whether the object has been named or not.
◆ IsVar()
|
inlinevirtual |
Returns true if the expression is indeed a variable.
Reimplemented in IntVar.
Definition at line 3817 of file constraint_solver.h.
◆ Max()
|
pure virtual |
Implemented in BooleanVar.
◆ Min()
|
pure virtual |
Implemented in BooleanVar.
◆ name()
|
virtualinherited |
Object naming.
◆ Range()
|
inlinevirtual |
By default calls Min() and Max(), but can be redefined when Min and Max code can be factorized.
Definition at line 3800 of file constraint_solver.h.
◆ reset_action_on_fail()
|
inlineinherited |
This method clears the failure callback.
Definition at line 3158 of file constraint_solver.h.
◆ set_action_on_fail()
|
inlineinherited |
Definition at line 3152 of file constraint_solver.h.
◆ set_name()
|
inherited |
◆ set_variable_to_clean_on_fail()
|
inlineinherited |
Shortcut for variable cleaner.
Definition at line 3161 of file constraint_solver.h.
◆ SetMax()
|
pure virtual |
Implemented in BooleanVar.
◆ SetMin()
|
pure virtual |
Implemented in BooleanVar.
◆ SetRange()
|
inlinevirtual |
This method sets both the min and the max of the expression.
Reimplemented in BooleanVar.
Definition at line 3805 of file constraint_solver.h.
◆ SetValue()
|
inlinevirtual |
This method sets the value of the expression.
Definition at line 3811 of file constraint_solver.h.
◆ solver()
|
inlineinherited |
Definition at line 3131 of file constraint_solver.h.
◆ UnfreezeQueue()
|
inlineinherited |
This method unfreezes the propagation queue.
All modifications that happened when the queue was frozen will be processed.
Definition at line 3139 of file constraint_solver.h.
◆ Var()
|
pure virtual |
Creates a variable from the expression.
Implemented in IntVar, and BaseIntExpr.
◆ VarWithName()
| IntVar* VarWithName | ( | const std::string & | name | ) |
Creates a variable from the expression and set the name of the resulting var.
If the expression is already a variable, then it will set the name of the expression, possibly overwriting it. This is just a shortcut to Var() followed by set_name().
◆ WhenRange() [1/3]
|
pure virtual |
Attach a demon that will watch the min or the max of the expression.
Implemented in BooleanVar.
◆ WhenRange() [2/3]
|
inline |
Attach a demon that will watch the min or the max of the expression.
Definition at line 3837 of file constraint_solver.h.
◆ WhenRange() [3/3]
|
inline |
Attach a demon that will watch the min or the max of the expression.
Definition at line 3831 of file constraint_solver.h.
The documentation for this class was generated from the following file: