https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84692
Andrew Pinski <pinskia at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Target Milestone|--- |7.4 Resolution|--- |FIXED Keywords|ice-on-invalid-code |ice-on-valid-code Status|UNCONFIRMED |RESOLVED --- Comment #3 from Andrew Pinski <pinskia at gcc dot gnu.org> --- GCC stopped ICEing for 7.4. clang still rejects it: <source>:9:7: error: no viable constructor or deduction guide for deduction of template arguments of 'Y' Y{0, Ts{}...}; ^ <source>:14:3: note: in instantiation of member function 'begin' requested here begin(X<int>{}); ^ <source>:4:12: note: candidate function template not viable: requires 1 argument, but 2 were provided struct Y { ^ <source>:4:12: note: candidate function template not viable: requires 0 arguments, but 2 were provided 1 error generated. I really think clang is wrong, it must not be handling constructor correctly.