If a 
template-parameter
of a class template, variable template, or alias template has
a default template argument,
each subsequent 
template-parameter
shall either have a default template argument supplied or
be a template parameter pack
.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]