Overview | Group | Tree | Graph | Index | Concepts |
IlcIntPredicateI
is the implementation class of
IlcIntPredicate
, which makes it possible for
you to define integer predicates in Solver. An integer predicate is
an object with a method (IlcIntPredicateI::isTrue
) that checks whether or not a
property is satisfied by an ordered set of integers. Conventionally in
Solver, the ordered set of integers is represented by an instance of
IlcIntArray
.
Defining Your Own Class of Integer Predicates
Integer predicates, like other Solver objects, depend on two classes: a
handle class, IlcIntPredicate
, and an
implementation class, IlcIntPredicateI
, where an object of the
handle class contains a data member (the handle pointer) that points to an
object (its implementation object), an instance of
IlcIntPredicateI
allocated on the Solver heap. As a Solver
user, you will be working primarily with handles.
If you define a new class of integer predicates yourself, you must define
its implementation class together with the corresponding virtual member
function IlcIntPredicateI::isTrue
, as well as
a member function that returns an instance of the handle class
IlcIntPredicate
.
Arity
As a developer, you can use predicates in Solver applications to define
your own constraints that have not already been predefined in Solver. In
that case, the arity of the predicate (that is, the number of
constrained variables involved in the predicate, and thus the size of the
array that the member function IlcIntPredicateI::isTrue
must check) must be less than or
equal to three.
See Also:
IlcIntArray, IlcIntPredicate, IlcTableConstraint
Constructor and Destructor Summary | |
---|---|
public | IlcIntPredicateI() |
public | ~IlcIntPredicateI() |
Method Summary | |
---|---|
public virtual IlcBool | isTrue(IlcIntArray val) |
Constructor and Destructor Detail |
---|
This constructor creates an implementation object of an integer predicate. This constructor should not be called directly because this is an abstract class. This constructor is called automatically in the constructors of its subclasses.
As this class is to be subclassed, a virtual destructor is provided.
Method Detail |
---|
This member function must be redefined when you derive a new subclass of
IlcIntPredicateI
. This member function must return IlcTrue
if the invoking predicate is satisfied by the elements contained in the array val
.
Otherwise, it must return IlcFalse
.