https://gcc.gnu.org/bugzilla/show_bug.cgi?id=127627
songb432 at gmail dot com changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |RESOLVED
Resolution|--- |INVALID
--- Comment #3 from songb432 at gmail dot com ---
(In reply to Jonathan Wakely from comment #2)
> It isn't shown because the more constrained one replaces it. There is only
> one copy constructor, decided by evaluating the constraints. The
> unconstrained one is not an "eligible special member function" in the
> terminology of the standard.
>
> EDG and MSVC accept this too, but I don't understand why. GCC seems correct
> to me, the only eligible copy constructor is the private explicit one, and
> so that is chosen by overload resolution, but that's ill-formed because it's
> not accessible and is explicit.
That's fine. A crucial bug of Clang, EDG, and MSVC, I believe.
`explicit` doesn't change the overload resolution in any way. Access checking
doesn't, either.
Thanks for your explanation!