Original Post
on the C++ Programming Language (special edition) page 538 define the function as but on page 98 it says "...the value of a reference cannot be changed after initializtion; it always refers to the object it was initialized to denote." aren't these contradictory?
template<class T> void swap(T&a, T&b)
{
T tmp = a;
a = b;
b = tmp;
}