#ifndef SWAP
#define SWAP

/* Swap exchanges the values of any two objects of the same type,
    for which the assignment operation is defined.

   Precondition: First and Second are two objects of the same type.
   Postcondition: The values of First and Second have been exchanged.
-------------------------------------------------------------------*/

template <class Item>
void Swap(Item &First, Item &Second)
{
   Item
      Temporary = First;

   First = Second;
   Second = Temporary;
}

#endif

