On 08.06.26 00:02, Thiago Macieira wrote: On Sunday, 7 June 2026 08:48:33 Pacific Daylight Time Christian Ehrlicher via Development wrote:
I recently found out that none of the QRect inline functions are inlined by msvc no matter what compiler options I pass. Tested with recent cl (19.51.36244) but also saw this with older msvc2022 compilers. Is this known and should/can we do something against this? Get a better compiler. MSVC is well-known for *not* inlining functions that are dllimported, if they are anything except the most trivial. Christian said that QRectF doesn't have the problem, and fingered QCheckedInt as the potential culprit. I think you may both be right. QRectF is also wholesale-exported, but the QCheckedInt change pushed QRect into "anything but most trivial" mode. Aaaand another entry into the ever-growing list of "never wholesale-export a non-polymorphic rule" failures (https://wiki.qt.io/Things_To_Look_Out_For_In_Reviews#Value_Classes Item 6). Thanks, Marc PS: from a recent Claude Opus conversation: The non-export rule for non-polymorphic classes has essentially no legitimate exception — the only reason to whole-class export one is laziness, and it strictly costs you. The closest thing is a non-polymorphic class you're exporting every member of anyway, where the wholesale macro is just shorthand; even then it silently re-emits inlines and invites C4251, so prefer the explicit member exports. -- Marc Mutz <[email protected]><mailto:[email protected]> (he/his) Principal Software Engineer The Qt Company Erich-Thilo-Str. 10 12489 Berlin, Germany www.qt.io<http://www.qt.io> Geschäftsführer: Mika Pälsi, Juha Varelius, Juha Puputti Sitz der Gesellschaft: Berlin, Registergericht: Amtsgericht Charlottenburg, HRB 144331 B Public
-- Development mailing list [email protected] https://lists.qt-project.org/listinfo/development
