https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107450
Bug ID: 107450 Summary: GCC accepts invalid program involving multiple template parameter packs Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jlame646 at gmail dot com Target Milestone: --- The following invalid program is accepted by gcc and clang but rejected by msvc: Demo: https://godbolt.org/z/Esbq4qK94 ``` template<typename... T1, typename... T2, typename... T3> void foo(T1&&...args1, T2&&... args2, T3&&... args3) { std::cout << "args1:\n", ((std::cout << args1 << " "), ...); std::cout << "args2:\n", ((std::cout << args2 << " "), ...); std::cout << "args3:\n", ((std::cout << args3 << " "), ...); } int main(int argc, char** argv) { foo(1,2,3,4,5,6); //gcc and clang compiles this while msvc correctly rejects this } ```