Overview | Group | Tree | Graph | Index | Concepts |
ILOUSERCUTCALLBACK0(name)
ILOUSERCUTCALLBACK1(name, type1, x1)
ILOUSERCUTCALLBACK2(name, type1, x1, type2, x2)
ILOUSERCUTCALLBACK3(name, type1, x1, type2, x2, type3, x3)
ILOUSERCUTCALLBACK4(name, type1, x1, type2, x2, type3, x3, type4, x4)
ILOUSERCUTCALLBACK5(name, type1, x1, type2, x2, type3, x3, type4, x4, type5, x5)
ILOUSERCUTCALLBACK6(name, type1, x1, type2, x2, type3, x3, type4, x4, type5, x5, type6, x6)
ILOUSERCUTCALLBACK7(name, type1, x1, type2, x2, type3, x3, type4, x4, type5, x5, type6, x6, type7, x7)
This macro creates two things: an implementation class for a user-defined
user cut callback named nameI
and a function named
name
that creates an instance of this class and returns an
IloCplex::Callback
handle for it. This function needs to be
called with an environment as first parameter followed by the n parameters
specified at the macro execution in order to create a callback.
You can then use the callback by
passing it to the use
method of an
IloCplex
object.
The class nameI
that is created by the macro includes the
implementation of the method
makeClone
as required for callbacks.
The implementation of the main
method must be provided by the
user in curly brackets {} following the macro invocation, like this:
ILOUSERCUTCALLBACKn(name, ...) { // implementation of the callback }
For the implementation of the callback, methods from class
IloCplex::UserCutCallbackI
and its parent classes can be used.
You are not obliged to use this macro to define callbacks. When the macro seems too restrictive for your purposes, we recommend that you define a callback class directly. Since the argument name is used to name the callback class, it is not possible to use the same name for several callback definitions.
See Also: