https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83870
Bug ID: 83870 Summary: template parameter pack followed by another template parameter does not error when following parameter can not be deduced Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: smw at gcc dot gnu.org Target Milestone: --- [temp.param]/11 tells us "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" and then it goes on to give us a couple of handy examples. // U can be neither deduced from the parameter-type-list nor specified template<class... T, class... U> void f() { } // error template<class... T, class U> void g() { } // error // the above is cut-n-paste from n3690, and for a complete program: int main() { f(); } MSVC19 and ICC18 issue diagnostics. GCC8 silently produces an executable.