"Name The Template Parameter" Odd Definition
<pre><code>template &lt;bool, class t, class u&gt;// why is bool here,class booltype=bool. Are they equivalent?
struct if_
{
    typedef typename t type;
};

template&lt;class t, class u&gt;
struct if_&lt;false,  t,  u&gt;   // what does the &lt;false,t,u&gt; mean？   
{
    typedef typename u type;
};
</code></pre>

<p>The code if from an article named "name the template parameter ". I can't understand the  definition of the both struct.</p>
