title: Overriding return type in function template specialization
body: <p>I would like to specialize a function template such that the return type changes depending on the type of the template argument.</p>
  
  <pre><code>class ReturnTypeSpecialization
  {
  public:
      template&lt;typename T&gt;
      T Item();
  };
  
  // Normally just return the template type
  template&lt;typename T&gt;
  T ReturnTypeSpecialization::Item() { ... }
  
  // When a float is specified, return an int
  // This doesn't work:
  template&lt;float&gt;
  int ReturnTypeSpecialization::Item() { ... }
  </code></pre>
  
  <p>Is this possible? I can't use C++11.</p>