[Development] QProperty and library coding guide
Volker Hilsheimer
volker.hilsheimer at qt.io
Thu Jul 16 21:02:39 CEST 2020
> On 16 Jul 2020, at 19:54, Thiago Macieira <thiago.macieira at intel.com> wrote:
>
> On Thursday, 16 July 2020 10:36:27 PDT Volker Hilsheimer wrote:
>>> Since std::is_same_v<decltype(action->text), decltype(action->title)> and
>>> &action->text == &action->title, how does the code above even work?
>>
>> action->text.structMemberFunction();
>>
>> calls QAction::_qt_property_api_text::structMemberFunction, which is
>> implemented by moc to operate on d->text
>>
>> whereas
>>
>> action->title.structMemberFunction();
>>
>> calls QAction::_qt_property_api_title::structMemberFunction, which is
>> implemented by moc to operate on d->title.
>>
>>
>> The structMemberFunctions are different for each property, but that doesn't
>> increase the size of QAction instances.
>>
>> The relevant macros are defined in qtmetamacros.h.
>
> In other words, action->text and action->title aren't the same type.
Correct, I see that my earlier statement that “each property is represented by an instance of a struct” was misleading.
Cheers,
Volker
More information about the Development
mailing list