https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61953

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
Clang and GCC both accept the code slightly.
ICC accepts the code with a warning:
<source>(1): warning #2922: template parameter "U" cannot be used because it
follows a parameter pack and cannot be deduced from the parameters of function
template "f"
  template<class... T, class... U> void f() { }
                                ^

<source>(2): warning #2922: template parameter "U" cannot be used because it
follows a parameter pack and cannot be deduced from the parameters of function
template "g"
  template<class... T, class U> void g() { }
                             ^


MSVC rejects the code:
<source>(1): error C3547: template parameter 'U' cannot be used because it
follows a template parameter pack and cannot be deduced from the function
parameters of 'f'
<source>(1): note: see declaration of 'U'
<source>(2): error C3547: template parameter 'U' cannot be used because it
follows a template parameter pack and cannot be deduced from the function
parameters of 'g'
<source>(2): note: see declaration of 'U'

Reply via email to