title: Are multiple non-type template parameter packs allowed?
body: <p>[temp.param] p11 says (in N4527):</p>
  
  <blockquote>
    <p>(...) A template parameter pack of a function template shall not be followed by another template parameter unless that template parameter can be deduced from the parameter-type-list of the function template or has a default argument</p>
  </blockquote>
  
  <p>In the context of <em>non-type</em> template parameter packs, there can't be default arguments,<br>
  so what exactly needs to be deduced for the packs (just the type, or the values, too)? </p>
  
  <p>i.e. I'm wondering if this is allowed by the standard (C++11, 14 or 1z):</p>
  
  <pre><code>template&lt;typename T, T... A, T... B&gt;
  void foo(T) {}
  </code></pre>
  
  <p>The first pack's values could be explicitly specified, but the second pack is "unreachable" and would always be empty if I'm not mistaken.</p>
  
  <p>clang++-3.6 and g++-5.2 seem to accept these empty unreachable packs (even non non-type packs), but VC++ 14.0 refuses them with the error:</p>
  
  <blockquote>
    <p>error C3547: template parameter 'B' cannot be used because it follows a template parameter pack and cannot be deduced from the function parameters of 'foo'</p>
  </blockquote>