 <td valign="top" width="21%"><pre>const T &amp;</pre>
        </td>
        <td valign="top" width="27%"><pre>const T &amp;</pre>
        </td>
        <td valign="top" width="53%"><pre>const T &amp;</pre>
        </td>
    </tr>
</table>

<p>This allows us to build a primary template definition for
&quot;pair&quot; that can contain non-reference types, reference
types, and constant reference types:</p>

<pre>template &lt;typename T1, typename T2&gt; 
struct pair 
{
  typedef T1 first_type;
  typedef T2 se