title: Compilation Error on Recursive Variadic Template Function
body: <p>I've prepared a simple variadic template test in Code::Blocks, but I'm getting an error:</p>
  
  <blockquote>
    <p>No matching function for call to 'OutputSizes()'</p>
  </blockquote>
  
  <p>Here's my source code:</p>
  
  <pre><code>#include &lt;iostream&gt;
  #include &lt;typeinfo&gt;
  
  using namespace std;
  
  template &lt;typename FirstDatatype, typename... DatatypeList&gt;
  void OutputSizes()
  {
      std::cout &lt;&lt; typeid(FirstDatatype).name() &lt;&lt; ": " &lt;&lt; sizeof(FirstDatatype) &lt;&lt; std::endl;
      OutputSizes&lt;DatatypeList...&gt;();
  }
  
  int main()
  {
      OutputSizes&lt;char, int, long int&gt;();
      return 0;
  }
  </code></pre>
  
  <p>I'm using GNU GCC with <code>-std=C++0x</code>.  Using <code>-std=gnu++0x</code> makes no difference.</p>