| Overview | Group | Tree | Graph | Index | Concepts | 
ILOINTTERNARYPREDICATENAME0(name, envName)
ILOINTTERNARYPREDICATENAME1(name, envName, type1, nameArg1)
ILOINTTERNARYPREDICATENAME2(name, envName, type1, nameArg1, type2, nameArg2)
ILOINTTERNARYPREDICATENAME3(name, envName, type1, nameArg1, type2, nameArg2, type3, nameArg3)
ILOINTTERNARYPREDICATENAME4(name, envName, type1, nameArg1, type2, nameArg2, type3, nameArg3, type4, nameArg4)
ILOINTTERNARYPREDICATENAME5(name, envName, type1, nameArg1, type2, nameArg2, type3, nameArg3, type4, nameArg4, type5, nameArg5)
ILOINTTERNARYPREDICATENAME6(name, envName, type1, nameArg1, type2, nameArg2, type3, nameArg3, type4, nameArg4, type5, nameArg5, type6, nameArg6)
This macro defines a predicate class named nameI with n data members
 for use in a model. When n is greater than 0, the types and names of the data
 members must be supplied as arguments to the macro. Each data member is defined by its type
 Ti and a name datai. The call to the macro must
 be followed immediately by the body of the isTrue member function of the
 predicate class being defined. Besides the definition of the class nameI,
 this macro also defines a function named name that creates an instance of the
 class nameI and that returns an instance of the class
 IloIntTernaryPredicate that points to it.
You are not obliged to use this macro to define ternary predicates on arbitrary objects.
 When the macro seems too restrictive for your purposes, we recommend that you define a
 predicate class directly by subclassing IlcIntPredicateI (documented in the
 ILOG Solver Reference Manual).
Since the argument name is used to name the predicate class, it is not
 possible to use the same name for several predicate definitions.
See Also: