> Languages and APIs > ILOG Concert Technology for C++ Users > Solving Concert Technology Models with IloCplex

ILOG CPLEX generally does not need to be involved while you create your model. However, after the model is set up, it is time to create your cplex object, that is, an instance of the class IloCplex, to be used to solve the model. IloCplex is a class derived from IloAlgorithm. There are other Concert Technology algorithm classes, also derived from IloAlgorithm, as documented in the Concert Technology Reference Manual. Some models might also be solved by using other algorithms, such as the class IloSolver for constraint programming, or by using a hybrid algorithm consisting of both IloSolver and ILOG CPLEX. Some models, on the other hand, cannot be solved with ILOG CPLEX.

The makeup of the model determines whether or not ILOG CPLEX can be used to solve it. More precisely, in order to be handled by IloCplex objects, a model may only consist of modeling objects of the classes listed in Table 1.1.

Instances of IloConstraint extracted by ILOG CPLEX can be created in a variety of ways. Most often, they can be generated by means of overloaded C++ operators, such as ==, <=, or >=, in the form expression1 operator expression2. Instances of both IloConstraint and IloRange generated in that way may be built from either linear or quadratic expressions. They may also include piecewise linear terms if variables can be substituted in such a way that the resulting expression is linear or quadratic.

For more detail about solving problems with IloCplex, see the following sections of this manual:

Table 1.1 Concert Technology Modeling Objects in C++
To model: 
Use: 
numerical variables 
objects of the class IloNumVar, as long as they are not constructed with a list of feasible values 
semi-continuous variables 
objects of the class IloSemiContVar  
linear objective function 
an object of the class IloObjective with linear or piecewise linear expressions 
quadratic objective function  
an object of the class IloObjective with quadratic expressions 
linear constraints 
objects of the class IloRange 
(lower bound <= expression <= upper bound) 
or 
objects of the class IloConstraint (expr1 relation expr2) 
involving strictly linear or piecewise linear expressions 
quadratic constraints 
objects of the class IloConstraint that contain quadratic expressions as well as linear expressions or piecewise linear expressions 
logical constraints 
objects of the class IloConstraint or generated ranges with linear or piecewise linear expressions 
variable type-conversions 
objects of the class IloConversion  
special ordered sets of type 1 
objects of the class IloSOS1 
special ordered sets of type 2 
objects of class IloSOS2  

For an explanation of quadratic constraints, see Solving Problems with Quadratic Constraints (QCP). For more information about quadratic objective functions, see Solving Problems with a Quadratic Objective (QP). For examples of piecewise linear constraints, see Transport: Piecewise Linear Optimization. For more about logical constraints, see Logical Constraints in Optimization. For a description of special ordered sets, see Using Special Ordered Sets.