title: Function template specialization for derivation of a specific type
body: <pre><code>class base
  {
  };
  
  class derived
  {
  };
  
  template&lt;class T&gt; void foo() {}
  
  
  int main()
  {
      foo&lt;int&gt;();
      foo&lt;derived&gt;();
  }
  </code></pre>
  
  <p>I want to specialize <code>foo</code> for T = derivation of <code>base</code>. Is this possible or do I need to specialize for <code>base</code> itself?</p>