https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121636
--- Comment #8 from Andrew Pinski <pinskia at gcc dot gnu.org> --- (In reply to Huiba Li from comment #7) > > ``` > > struct A { > > A(int, int = 0); > > A(int, int, int = 0) = delete; > > }; > > struct B : A { > > using A::A; > > }; > > B b(1); > > > > ``` > > > > This is rejected by GCC and EDG while accepted by clang/msvc. > > As a user of C++, I'd say I'm surprised to see the rejection, and then > confused by the reason given in the error message. Right and so what i think is going wrong has to come down with is the constructor that is selected still the same constructor that is called. The paper and the defect report in this area were aiming at fixing that. But it seems like edg and gcc didnt implement the way folks were expecting. I have been rereading the standard and the paper that resolves this and it is still not obvious to me which is correct. I must be missing something.