> On 21 Jul 2020, at 22:51, Ville Voutilainen <ville.voutilai...@gmail.com> 
> wrote:
> 
> On Tue, 21 Jul 2020 at 23:48, Ville Voutilainen
> <ville.voutilai...@gmail.com> wrote:
>> 
>> On Tue, 21 Jul 2020 at 22:12, Thiago Macieira <thiago.macie...@intel.com> 
>> wrote:
>>> 
>>> On Tuesday, 21 July 2020 10:40:27 PDT Ville Voutilainen wrote:
>>>> A very significant goal of this exercise is achieving notational
>>>> convenience. Theoretical concerns about UB
>>>> in the presence of papers that apparently excise that UB shouldn't
>>>> stand in the way of that goal.
>>> 
>>> Sorry, I don't agree. We can't use something that is unimplementable.
>> 
>> Oh, when did that change? Was qobject_cast changed not to be UB?
> 
> See also all the memcpys that are done with types that are
> polymorphic, and the ones
> where we memcpy types that have user-provided copy operations. qtbase
> is UB left right
> and center, but it's certainly interesting that when a new thing in it
> might be clarified
> not to be UB after all, we perform all kinds of somersaults to avoid
> such dark corners.


With the current design, notational convenience doesn’t work either:

auto text = qAction->text;
text.left(10); // booh

‘text’ is not a QString, but a QAction::_qt_property_api_text object, with 
broken... everythings.


And if people can’t use auto, then you can’t use standard ranged-for to iterate 
over container type properties without spelling everyhing out. That’s ... not 
convenient, I suppose. And that problem persists, even if we expose a e.g 
QProperty<QStringList> reference through a public property member.

The current implementation also adds, in case of us not being able to use 
no_unique_address,  a byte or even a pointer to each class in a class 
hierarchy, bloating classes down in the inheritance tree. Plus the BC challenge 
that might come with in the long run.

So, this is not only a problem of UB. There is well defined behavior that seems 
to get in the way.



Volker


_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to