The IOU Classes
The IOU template classes implement a thread synchronization mechanism called a future, as explained in Futures, IOUs, and Escrows.
The concrete IOU classes are templates that are parameterized on the type of the result that is stored. This type has the following characteristics:
*It cannot be a reference.
*It must have a public copy constructor.
*It cannot define a protected operator new().
An IOU object possesses two distinct interfaces:
*One for storing the results of an operation into an IOU’s escrow object.
*One for retrieving the results from the IOU escrow.
These two interfaces are realized by the IOU handle classes RWTIOUEscrow and RWTIOUResult.
You can convert from one IOU handle type to the other by using copy-construction:
 
RWTIOUResult<int> result = ...;
RWTIOUEscrow<int> escrow = result;