title: No matching overloaded function found C++ TEMPLATE
body: <p>Recurvise call C++ template function with Variable template</p>
  
  <pre><code>void int void foo()
  {
  
  }
  
  template &lt;typename T, typename ...U&gt; void foo()
  {
      foo&lt;U...&gt;();
  }
  
  int main()
  {
      foo&lt;int, char, int&gt;();
      return 0;
  }
  </code></pre>
  
  <p>The compile meesage such as:</p>
  
  <p>error C2672: 'foo': no matching overloaded function found
  note: see reference to function template instantiation 'void foo(void)' being compiled
  note: see reference to function template instantiation 'void foo(void)' being compiled
  note: see reference to function template instantiation 'void foo(void)' being compiled
  error C2783: 'void foo(void)': could not deduce template argument for 'T'
  note: see declaration of 'foo'</p>
  
  <p>I declare the void foo(void), Why the error occured?
  complier can match template  void foo(), but can't match void foo(void)</p>