title: Can default function arguments "fill in" for expanded parameter packs?
body: <p>The following code <a href="http://coliru.stacked-crooked.com/a/001f1a997f0b499d" rel="nofollow noreferrer">fails to compile</a> : </p>
  
  <pre><code>#include &lt;iostream&gt;
  
  template&lt;typename F, typename ...Args&gt;
  static auto wrap(F func, Args&amp;&amp;... args)
  {
      return func(std::forward&lt;Args&gt;(args)...);
  }
  
  void f1(int, char, double)
  {
      std::cout &lt;&lt; "do nada1\n"; 
  }
  
  void f2(int, char='a', double=0.)
  {
      std::cout &lt;&lt; "do nada2\n"; 
  }
  
  int main()
  {
      wrap(f1, 1, 'a', 2.); 
      wrap(f2, 1, 'a'); 
  }
  </code></pre>
  
  <pre class="lang-none prettyprint-override"><code>g++ -std=c++14 -O2 -Wall -pedantic -pthread main.cpp &amp;&amp; ./a.out
  
  main.cpp: In instantiation of 'auto wrap(F, Args&amp;&amp; ...) [with F = void(*)(int, char, double); Args = {int, char}]':
  main.cpp:22:20:   required from here
  main.cpp:6:44: error: too few arguments to function
       return func(std::forward&lt;Args&gt;(args)...);
  </code></pre>
  
  <p>It seems that the rule about "parameter packs being last" is followed (at least in the declaration) and after the expansion a correct function call should be formed : <code>f2</code> can either be called with 1, 2 or 3 arguments so the <code>too few arguments</code> being an error seems 'harsh'. It also doesn't look like a <a href="https://stackoverflow.com/a/14788106/2567683">deduction problem</a> (which would be my guess - but got shaky due to the error message)</p>
  
  <p>Is this a missing feature or there's a violation from the Standard's point of view ? </p>