https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86439
--- Comment #1 from Patrick Palka <ppalka at gcc dot gnu.org> ---
Another side effect of this is that GCC incorrectly rejects the following use
of CTAD + braced-init-lists:
struct B { };
struct C { };
template<class T>
struct A {
A(T, B);
};
template<class T>
A(T, C) -> A<T>;
A a(0, {});
The problem is that building the call to the deduction guide has the side
effect of changing the type of the {} to C, which causes later overload
resolution to fail because C isn't convertible to B.