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

            Bug ID: 103740
           Summary: A function template declaration with a
                    template-parameter in the last that has no default
                    argument or can be deduced shall be ill-formed
           Product: gcc
           Version: 11.2.1
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c++
          Assignee: unassigned at gcc dot gnu.org
          Reporter: xmh970252187 at gmail dot com
  Target Milestone: ---

template<class... T, class U> void g() { } 

This template declaration should be ill-formed since it violates [temp.param]
p14

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]). 


Template parameter `U` satisfies none of them, hence the declaration should be
ill-formed. It is also a formal example that the comment says it is an error.
  • [Bug c++/103740] New: A functio... xmh970252187 at gmail dot com via Gcc-bugs

Reply via email to