title: Template Specialization of Function inside of a Templated Class
body: <p>I have a templated class and inside I have a templated function( different template parameters ) and I having issues getting the compiler to call the correct one.</p>
  
  <p>Example:</p>
  
  <pre><code>template&lt; class Parm1, class Parm2, class Parm3 &gt;
  class Class {
  public:
     void   Func( Parm1 arg1, Parm2 arg2 ) {
        Call&lt;Parm3&gt;( arg1, arg2 ); 
     }
  
  protected:
     template&lt; class Type &gt;
     void   Call( Parm1 arg1, Parm2 arg2 ) {
     }
  
     template&lt;&gt;
     void   Call&lt;void&gt;( Parm1 arg1, Parm2 arg2 ) {
     }
  };
  </code></pre>
  
  <p>So if the type of Parm3 is 'void' I want the second Call to be called.  Otherwise the first.  VS it works fine but GCC pukes all over it.  It always calls the first one.  Now is this an issue with specializing within of an unspecialized class or does it have something to do with the fact that Im specializing with 'void'</p>
  
  <p>Any help would be great.  Thanks.</p>