On Mon, 19 Aug 2024 at 22:34, Jonathan Wakely <jwak...@redhat.com> wrote: > > On Mon, 19 Aug 2024 at 21:51, Gerald Pfeifer <ger...@pfeifer.com> wrote: > > > > On Wed, 12 Oct 2022, Marek Polacek via Gcc-patches wrote: > > > +<p> > > > +The two overload resolutions approach was complicated and quirky, so > > > users > > > +should transition to the newer model. This change means that code that > > > +previously didn't compile in C++17 will now compile, for example:</p> > > > > I looked at this recently and am wondering whether there is a word > > missing: "two overload" -> "two-stage overload"? > > > > If so, the patch below addresses that > > > > On the way, I changed "[code] will now compile" to "[code] may now > > compile", since not every code that failed to compile before will now > > compile (e.g., syntactically incorrect code). > > > > What do you think? > > No, it should either be "two-stage overload resolution" or leave it > unchanged. But "two-stage overload resolutions" (plural) is wrong.
And if I had to choose, I think the original text was better. It wasn't two stages, it really was doing overload resolution twice. So there were two overload resolutions. > > > > > > Gerald > > > > > > diff --git a/htdocs/gcc-13/porting_to.html b/htdocs/gcc-13/porting_to.html > > index c727d66f..e595e120 100644 > > --- a/htdocs/gcc-13/porting_to.html > > +++ b/htdocs/gcc-13/porting_to.html > > @@ -82,9 +82,10 @@ not in C++17). Then C++23 <a > > href="https://wg21.link/p2266">P2266</a> > > removed the fallback overload resolution, and changed the implicit move > > rules once again.</p> > > > > -<p>The two overload resolutions approach was complicated and quirky, so > > users > > -should transition to the newer model. This change means that code that > > -previously didn't compile in C++17 will now compile, for example:</p> > > +<p>The two-stage overload resolutions approach was complicated and > > +quirky, so users should transition to the newer model. This change > > +means that code that previously didn't compile in C++17 may now > > +compile, for example:</p> > > > > <pre><code> > > struct S1 { S1(S1 &&); }; > >