FRAMES NO FRAMES

Class IlcRevFloat

Definition file: ilsolver/basic.h
Include file: <ilsolver/ilosolver.h>

IlcRevFloat is a reversible version of the basic predefined Solver type, IlcFloat. The reversible version makes it easier to restore a previous state. This class has a value data member corresponding to IlcFloat. This value data member is automatically restored when Solver backtracks.

This class is not a handle class. Objects of this class should be used directly, that is, not through pointers to them. Do not create instances of IlcRevFloat as automatic objects (that is, as objects allocated on the C++ stack). Do not pass them by value.

An object of the class IlcRevFloat is automatically cast to the basic type IlcFloat, if needed. Instances of this reversible class can be used as data members. However, do not use them as types for automatic variables, where “automatic” has its usual C++ meaning, as this practice would create memory-access errors. Do not pass them as arguments.

An instance of IlcRevFloat behaves very much like an instance of IlcFloat; the difference in their behavior has to do with assignments. Indeed, all reversible assignments are undone when Solver backtracks.

For more information, see the concepts State and Reversibility.

See Also:

Constructor Summary
public IlcRevFloat()
public IlcRevFloat(IloSolver solver, IlcFloat initValue=0.)
Method Summary
public IlcFloatgetValue() const
public operator IlcFloat() const
public voidsetValue(IloSolver solver, IlcFloat value)
Constructor Detail

IlcRevFloat

public IlcRevFloat()

The constructor creates a new object, an instance of IlcRevFloat. It is less memory-efficient than the constructor with a solver as its argument.


IlcRevFloat

public IlcRevFloat(IloSolver solver, IlcFloat initValue=0.)

The constructor creates a new object, an instance of IlcRevFloat. It is more memory-efficient than the constructor without arguments.


Method Detail

getValue

public IlcFloat getValue() const

This member function accesses the value of the instance of IlcRevFloat.


operator IlcFloat

public operator IlcFloat() const

This operator returns the value of the instance of IlcRevFloat. In other words, this operator automatically casts an instance of IlcRevFloat into an instance of IlcFloat.


setValue

public void setValue(IloSolver solver, IlcFloat value)

This member function modifies the value of the invoking object by reversibly assigning value to it. When Solver backtracks, this reversible modification will be undone.