itives and composites yield an infinite set of new types.
  One problem is that C++ offers no easy facility to deduce the type of an arbitrarily
  complex expression that yields a complex type. Thus, while it is easy to write:</p>
<pre><code><font color="#000000"><span class=identifier>    </span><span class=keyword>int </span><span class=identifier>r </span><span class=special>= </span><span class=identifier>i </span><span class=special>| </span><span class=identifier>j </span><span class=special>&gt;&gt; 