title: Why can't I specialize the nested template member without specializing enclosing class template first?
body: <p>Here is the code :</p>
  <pre><code>template &lt;typename T&gt;
  struct A
     {
     template &lt;typename U&gt;
     struct B;
     };
  template &lt;typename T&gt; template &lt;&gt; // 0_o
  struct A&lt;T&gt;::B&lt;int&gt; {};
  </code></pre>
  <p>I know I can't do this but I'm more interested to know logically Why can't I specialize the nested template member without specializing enclosing class template first?</p>
  <p>I appreciate any help with logical explanation :)</p>
  <h3>Edit :</h3>
  <p>Andrei Alexandrescu's reply : &quot;There's no particular reason - it's just a language rule.&quot;</p>