On Thursday, 16 July 2020 03:43:58 PDT Volker Hilsheimer wrote: > The various macros involved provide this. Each property is represented by an > instance of a struct with no data members, but just methods that forward > calls to the accessor, which in Qt is typically the d-pointer (where the > QProperty itself lives as well).
That's why I asked about 59*sizeof(void*) addition to QWidgetPrivate. > For pre-C++20 (where it’s possible to have zero-size structs), and for > compilers that don’t respect the [[no_unqiue_address]] attribute, all these > struct-instances are put into a union. In that case, a class using > QProperty will be larger (by the same amount no matter the number of > properties) than the same class in Qt 5. With C+++ 20 and compilers that do > respect [[no_unique_address]], the size and layout of these classes will be > the same. Hmm... design question then: if the address isn't relevant and the data inside isn't relevant either (because it can't be), why do we need a member in the first place? What information does it convey that is neither the address nor the contents? -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel System Software Products _______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development