https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70637
Arthur O'Dwyer <arthur.j.odwyer at gmail dot com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |arthur.j.odwyer at gmail dot com --- Comment #1 from Arthur O'Dwyer <arthur.j.odwyer at gmail dot com> --- Confirmed. I ran into the same issue with a unit test that was trying to test whether a given constructor was `explicit`. ==== // https://godbolt.org/z/STvgby #include <initializer_list> struct S { explicit S(); }; struct T { T(); }; void foo(S) {} void foo(T) {} void bar() { foo({}); } ==== GCC says: <source>: In function 'void bar()': <source>:16:11: error: call of overloaded 'foo(<brace-enclosed initializer list>)' is ambiguous 16 | foo({}); | ^ <source>:11:6: note: candidate: 'void foo(S)' 11 | void foo(S) {} | ^~~ <source>:12:6: note: candidate: 'void foo(T)' 12 | void foo(T) {} | ^~~