[Development] 64-bit QFlags support

Thiago Macieira thiago.macieira at intel.com
Tue Oct 1 00:22:48 CEST 2024


On Thursday 12 September 2024 06:59:55 GMT-7 Thiago Macieira wrote:
> > +1 for that! That's one of the things that we pay attention to during API
> > review in Qt, so hopefully all new Qt APIs will either use `enum class`,
> > or explicitly define an underlying type.
> 
> The first part of the update is ready for review and has passed the CI, for
> "full". Considering the number of changes and how critical, the more eyes
> available the better:

The first part is now integrated into 6.9. There are lots of commits remaining 
in this major refactor because not everything is reviewed yet, but I wanted to 
get the constexpr code to generate the metaobject in, to get feedback.

Please report if you have anything If you use separate host tools from qtbase, 
you don't have to rebuild your host tools just yet.

There are already two:
1) Q_ENUMs and Q_FLAGs on 64-bit enumerations are failing with a 
static_assert. In hindsight, I shouldn't have added that. It's fixed by a 
follow-up commit, which implements the support for QMetaObject.

I didn't originally plan on staging only a portion of the functionality, but 
since the reviews are slow to come by and the CI has been VERY temperamental 
this weekend (tst_QShortcut, tst_QWidget_window), I wanted to get this one in.

2) Jøger reports that VS is failing to compile the meta object of a private 
class. I think that's a compiler bug, because there is an equivalent test in 
tst_Moc and that compiles. I can't reproduce the issue because I can't compile 
the code in question (qtmultimedia fails to cmake for me and even if it did, I 
don't have FFMPEG for VS).

If someone can investigate this further and determine how 
QFFmpegWindowCaptureUwp::Grabber is different from tst_Moc::PrivateClass, I'd 
appreciate. As a workaround, just make the class public. This is in a plugin 
anyway.

If it turns out that it is a compiler bug, I don't plan on investigating 
anything for a workaround nor for reporting to MS. We'll just document 
"upgrade to a better compiler or make your class public".

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Principal Engineer - Intel DCAI Platform & System 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/20240930/056ec7ef/attachment.bin>


More information about the Development mailing list