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 (
[dcl.fct]) of the function template or has a
default argument (
[temp.deduct])
. A template parameter of a deduction guide template (
[temp.deduct.guide])
that does not have a default argument
shall be deducible
from the parameter-type-list
of the deduction guide template
. [
Example 7:
template<class T1 = int, class T2> class B;
template<class... T, class... U> void f() { }
template<class... T, class U> void g() { }
—
end example]