[Development] Switching Qt default builds to C++20 where supported

Mathias Hasselmann mathias at taschenorakel.de
Mon Oct 14 20:46:17 CEST 2024


The QtCS24 misses the single one big reason you want to switch C++20 now 
and whenever possible: Concepts.
They indeed are a total game changer and I'd boldy predict that 80% of 
all meta-programming helpers in Qt's headers could be replaced by 
concepts that are easier to understand, more expressive, more complete. 
You simply do not like C++ if you are not eager to use concepts.

End of the advertisement block.

Mathias

Am 14.10.2024 um 16:56 schrieb Vladimir Minenko via Development:
>> 6) when should we do this?
>> The last time we discussed C++20, it was made clear that we can only 
>> do such
>> changes on LTS+1 releases. That's 6.9.
>
> The last time we discussed this was at QtCS24 
> (https://wiki.qt.io/QtCS2024_C%2B%2B20), where IIRC the conclusion was 
> that ATM, there is no reason to switch to C++20. So, it is definitely 
> not in 6.9.
>
>> Effectively, I don't see much difference from the current situation, 
>> where we "pretend" that we require C++17 but in reality we just check 
>> that we can pass `-std=c++17` to the compiler. Any usage in Qt code 
>> of individual language/library features still requires protection, 
>> because they're not universally implemented.
>
> And because of this, I once asked to set up a nightly build with 
> forced `-std=c++17`, e.g. 
> https://testresults.qt.io/coin/integration/qt/qtbase/tasks/nightly1728750903. 
> We already had two cases when C++20-specific code was merged and the 
> build failed only because of this. There is a notification email set 
> on failures for this build. There are only people from The Qt Company 
> so far on it. If someone else is interested, I would gladly change 
> this and include other people ;-)
>
> --
> Vladimir
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/development/attachments/20241014/58c1e2e1/attachment-0001.htm>


More information about the Development mailing list