Theoretically, would it be possible to allow multiple C++ templates to have the same name?
<p>It would be like function overloading. E.g. it is ok to do this:</p>

<pre><code>void foo(int i) {
  ;
}

// Function overload ftw.
void foo(int i, int j) {
  ;
}
</code></pre>

<p>But it is not (yet) ok to do this:</p>

<pre><code>template&lt;typename T&gt;
class Foo {
};

// Fail!
template&lt;typename T1, typename T2&gt;
class Foo {
};
</code></pre>

<p>Does this feature not exist in order simply to avoid confusion? Or is there some reason this wouldn't actually make sense?</p>
