Restores the given variable to the value it was when it was passed to the function after the delegate has finished.
This is a helper struct used by the "restore" function. It overloads the "in" operator to allow to taking a delegate.
This struct can be used to implement, what looks similar to, new statements. This struct overloads the "in" operator which a delegate can be passed to. The delegate passed to the "in" operator will then be called at an appropriate time decided by the implementation of the function returning the Use struct.
Copyright (c) 2010-2011 Jacob Carlborg.
Initial created: Jan 29, 2010