title: Template deduction fails with argument after parameter pack
body: <p>I have this function:</p>
  
  <pre><code>template &lt;typename... Args&gt;
  void f(Args... args, int last)
  {
  }
  </code></pre>
  
  <p>Template deduction fails if I call it without explicit template parameters:</p>
  
  <pre><code>f(2, 2); // candidate expects 1 argument, 2 provided
  </code></pre>
  
  <p>But giving the explicit template parameters for the parameter pack works:</p>
  
  <pre><code>f&lt;int&gt;(2, 2); // compiles fine
  </code></pre>
  
  <p>Even though logically speaking, the compiler should be able to deduce that the parameter pack consists of all but the last argument types. How would I fix this?</p>