title: Why the template with default template arguments can't be used as template with less template argument in Template Template Parameters
body: <p>myTemplateTemplate expects the second template parameter is a template with one argument.
  myDefaultTemplate is a template with two arguments, and the second argument has default type int. </p>
  
  <p>In VS2008, I get the compile error:the template parameter list for class template 'myDefaultTemplate' does not match the template parameter list for template parameter 'TT'</p>
  
  <p>So,why the myDefaultTemplate can't be used as the template with just one argument? 
  Are there any negative impact if C++ compiler supports it?</p>
  
  <pre><code>template
  &lt;typename T1, typename T2 = int&gt;
  class
  myDefaultTemplate{
        T1 a;
        T2 b;
  };
  
  template
  &lt;typename T1, template&lt;typename T2&gt; class TT&gt;
  class
  myTemplateTemplate{
        T1 a;
        TT&lt;T1&gt; b;
  };
  
  int main(int argc, char* argv[]){
        myTemplateTemplate&lt;int, myDefaultTemplate&gt; bar; //error here:      
        return 0;
  }
  </code></pre>