[Development] Raising the minimum to C++20

David C. Partridge david.partridge at perdrix.co.uk
Fri Feb 9 17:20:02 CET 2024


As a Qt user I am 100% with the sentiments expressed below by Volker.   Qt should not require users to build with C++20 until or unless it has a compelling reason to do so.   Allowing users to use C++20 or C++23 is a different question.

 

David Partridge

 

From: Development <development-bounces at qt-project.org> On Behalf Of Volker Hilsheimer via Development
Sent: 09 February 2024 14:46
To: Vladimir Minenko <vladimir.minenko at qt.io>; development at qt-project.org
Subject: Re: [Development] Raising the minimum to C++20

 

I haven’t heard any convincing argument for us raising the minimum to C++ 20 in the foreseeable future. Not for building Qt, and not for using Qt.

 

At most we get some convenience constructs for ourselves. There’s value in that, of course. But unless I miss something huge, then that value is quite small. We have a working implementation of e.g. atomics that is sufficient for our own needs; we have our own implementation of <bit>. We now also have QSpan, which we practically don’t use anywhere in Qt so far. And that value is of practically no relevance to users of Qt - they can use C++20 in their application, together with Qt.

 

The 3 big C++20 features people ask us about are modules, co-routines, and concepts. We have no compelling answers here. You can’t build Qt into a set of modules; we have no APIs using co-routines; none of our template constraints are expressed, or at least documented, as concepts, and there is no draft of a concept library for things that might be interesting for Qt users.

 

Do we really want to go out and say that C++20 is now mandatory to build or use Qt, while we have no convincing story on any of that? Do we want to ask people to make a significant investment if they want to work with the latest Qt version, but even then they don’t get any support for any of the big three features?

 

So, as much as I’d like for some of the things I’m working on to be able to benefit from C++ 20, I’d also say that we should rather slow down, and only require C++20 if we have something to show for it. We can perhaps still make improvements to better enable C++20 features, such as std::ranges, in application code; but that should neither require Qt to be built with C++20, nor require applications that don’t use std::ranges to use C++20.

 

 

Volker

 





On 9 Feb 2024, at 10:41, Vladimir Minenko via Development <development at qt-project.org> wrote:

 

Just as a reminder, the "C++20 is mandatory for users of Qt (Phase III)” (https://bugreports.qt.io/browse/QTBUG-109362) says "The tentative plan is Qt 6.12+” 

 

and "C++20 is required for the development and buiding of Qt itself (Phase II)” (https://bugreports.qt.io/browse/QTBUG-109361) - "The tentative plan is Qt 6.9-6.11”

 

With all the respect to the power of C++20 and enthusiasm to use it from Qt Project developers, what should we expect from all other users if we would make this change in 6.8, considering:

 

a) just 4 months left to the Feature Freeze for 6.8

b) there is zero communication to users beyond the above issues on Qt But Reports and discussions on this mailing list (which is actually for Qt developers and not Qt users, BTW)

c) there is no other communication about the done and ongoing works introducing C++20 in Qt and plans for future versions, beyond the talk from Mark at QtWS22 and careful reading of “What’s New” pages

 

Qt crashed such a change on users with C++11 and with C++17 in the past. Each time after this, there were much more negative responses than “thank you”s. I still hope we find a way to do this better this time. And just “faster” is not “better"

 

In the current shape, my vote is “no”. 


--
Vladimir 





On 3. Feb 2024, at 18:15, Thiago Macieira <thiago.macieira at intel.com <mailto:thiago.macieira at intel.com> > wrote:

 

On Tuesday, 2 May 2023 17:39:01 PST Thiago Macieira wrote:



I don't have access to QNX and INTEGRITY toolchain information, so I'd like
to request that they simply match the feature list above, with minimal
workarounds.


What's the current state for those, for supporting Qt 6.8 or 6.9?

We have VxWorks coming in and I'd like it to meet a higher minimum bar than 
"legacy". That is, I'd like VxWorks to require a C++20-compliant compiler 
before being enabled in our CI, but that's only fair if we have a line-of-
sight to bringing everyone to C++20.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
 Cloud Software Architect - Intel DCAI Cloud Engineering
-- 
Development mailing list
Development at qt-project.org <mailto:Development at qt-project.org> 
https://lists.qt-project.org/listinfo/development

 

-- 
Development mailing list
Development at qt-project.org <mailto:Development at qt-project.org> 
https://lists.qt-project.org/listinfo/development

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20240209/fde9fe0b/attachment.htm>


More information about the Development mailing list