title: Is it possible to specialize a template using a member enum?
body: <pre><code>struct Bar {
    enum { Special = 4 };
  };
  
  template&lt;class T, int K&gt; struct Foo {};
  template&lt;class T&gt; struct Foo&lt;T,T::Special&gt; {};
  </code></pre>
  
  <p>Usage:</p>
  
  <pre><code>Foo&lt;Bar&gt; aa;
  </code></pre>
  
  <p>fails to compile using gcc 4.1.2
  It complains about the usage of <code>T::Special</code> for partial specilization of Foo. If <code>Special</code> was a class the solution would be to a typename in front of it. Is there something equivalent to it for enums (or integers)?</p>