title: Why can't namespaces be template parameters?
body: <p>I understand that namespaces cannot be template parameters. See the question, <a href="https://stackoverflow.com/questions/3558609/template-specialized-on-a-namespace">"template specialized on a namespace"</a>:</p>
  
  <blockquote>
    <p>Given:</p>
  
  <pre><code>namespace A {
    class Foo;
    class Bar;
  }
  
  namespace B {
    class Foo;
    class Bar;
  }
  </code></pre>
    
    <p>I want to template a class on the namespace <code>A</code> or <code>B</code> such that the following works:</p>
  
  <pre><code>template&lt;name&gt; class C {
    name::Foo* foo;
    name::Bar* bar;
  };
  </code></pre>
  </blockquote>
  
  <p>I was wondering why this is the case. I understand that templates aren't structures, but is there a technical limitation to the compiler's design?  Or is there some significant trade off for implementing this functionality?</p>