 cv-unqualified
      type of the local object is the same as the function return type, an
      implementation is permitted to omit creating the temporary object to
      hold the function return value, even if the class copy constructor or
      destructor has side effects.
    </blockquote>
    This optimization is known as the named return value optimization (NRVO),
    which leads us to the following implementation for
    <code>operator+</code>:
<pre>
T operator+( const T&amp; lhs, const T&amp; rhs )
