https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116276

--- Comment #2 from Patrick Palka <ppalka at gcc dot gnu.org> ---
In C++20 mode it works because of the default ctor guide
[over.match.class.deduct]/1.2: "If C is not defined or does not declare any
constructors, an additional function template derived as above from a
hypothetical constructor C()."  I guess a ctor using-decl isn't considered a
ctor decl, so we go ahead and include a default ctor guide, which ultimately is
viable.

In C++23 mode we see two viable guide candidates, the default ctor guide for
Derived and the default ctor guide for Base1 (we don't see the Base2
using-decl), and overload resolution fails with ambiguity due to the
unimplemented tiebreaker.

Reply via email to