https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93191
Bug ID: 93191 Summary: Conversions to arrays of unknown bound P0388 Fails for variadic args Product: gcc Version: 10.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: wjwray at gmail dot com Target Milestone: --- The P0388 permitted conversion from array of known bound to array-reference of unknown bound fails for variadic arguments https://godbolt.org/z/Rp3GdN #include <cstdio> void cat(auto const(&...cstr)[]) { (((void)cstr,puts("G'bye")),...); } //void cat(auto const(&...cstr)[6]) { (puts(cstr),...); } using punk = char(*)[]; // Pointer to UNKnown-bound char array int main() { cat("Hello","world"); // error: no matching function cat(*punk{},*punk{}); // Matches 1st overload } Same with explicit template syntax template <typename... C> void cat(C const(&...cstr)[]);