https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90426
Marek Polacek <mpolacek at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #2 from Marek Polacek <mpolacek at gcc dot gnu.org> --- I think this is invalid. [temp.arg]p2: "In a template-argument, an ambiguity between a type-id and an expression is resolved to a type-id, regardless of the form of the corresponding template-parameter." template<auto> struct S { }; struct R { }; void g (void) { S<R()> s; // template argument treated as function type S<R{}> s2; S<int()> s3; // template argument treated as function type S<int{}> s4; }