[Development] Raising the minimum to C++20
Thiago Macieira
thiago.macieira at intel.com
Thu May 4 00:39:22 CEST 2023
On Wednesday, 3 May 2023 11:14:55 PDT Marc Mutz via Development wrote:
> [Sorry, yes, 6.9 is in spring '25. I messed up the counting]
As a native of the Southern Hemisphere, I ask that we use dates, not seasons
to refer to times. Everyone knows that Spring happens in September, right
before we go for Christmas and New Year at the beach for some suntan.
I also make a similar request of any Americans around: spell out you month
names, so there's no mistaking whether "04/05/2023" means First Contact Day
(Star Trek) or May The Fourth Day (Star Wars). Or use ISO dates.
> I'm not the one talking to these customers, but the feedback I get from
> those who do is that yes, it's too early. Then again, the internal plan
> calls for requiring C++20 for building (but not using) Qt 6.9. I don't
> see how that helps any user. If they can build Qt in C++20 (or arrange
> for it to be built for them), then they can build their own project in
> C++20, too. I get the desire to insulate users from having to port their
> own code to C++20, but as I said, I don't see how that's possible to
> avoid if Qt itself must be built with C++20.
Agreed: if the toolchain they're using can compile Qt in C++20 mode, then that
toolchain can compile their application too. So long as the update of the
toolchain retains compatibility with code that had been previously compiled,
there aren't any major issues. All of the ones I work with do.
There may be a bit of code that compiled with C++17 and doesn't with C++20
(like the implicit capture of this in [=]), but they're usually simple and
easy to fix.
There may also be issues with some other libraries that, unlike Qt and the
Standard Libraries, do have different symbols depending on whether they were
compiled with C++17 or 20 (e.g., an out-of-line operator<=>). Those would need
to be recompiled with the new toolchain. Usually, vendors that have bothered
with writing C++20 code would have such builds available, so I don't expect
this need to be a big problem either.
But those are paper cuts. If you add enough of them...
> > If you're only going to make a VLTS release every 4.5 years, then we won't
> > be able to adopt every C++ release. C++23 may be too soon for adoption in
> > late 2024 (release March 2025), but we may then skip C++26 for the one
> > after.
> C++20 (like C++11) are a bit special as they're rather large releases.
> Companies and customers may be (rightfully) more reluctant to upgrade to
> C++20 than they were from, say, 11 to 14, which is what I expect 20-23
> to feel like.
Indeed, see my reply to Volker in the older thread. I don't see anything in 23
that we'd push for.
And yet, the list of things we want from C++20 is not that big. It's nowhere
as complex as C++11 and I'd argue that even the 17 upgrade for Qt 6.0 was a
bigger jump. Unless we add concepts to the list, but I don't think we can
until we've experimented with it for a while.
--
Thiago Macieira - thiago.macieira (AT) intel.com
Cloud Software Architect - Intel DCAI Cloud Engineering
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 5152 bytes
Desc: not available
URL: <http://lists.qt-project.org/pipermail/development/attachments/20230503/a3e6f6d8/attachment-0001.bin>
More information about the Development
mailing list