On Monday, 20 July 2020 01:23:39 PDT Lars Knoll wrote: 
> But I don’t see why we would need to do this now, if the code we have works
> fine on current compilers. It’s all non inline, so we could add those kind
> of workarounds only if they become a requirement for a certain compiler. 

It's "inline" in the sense that it's generated by moc and therefore ends up in 
user code. That severely limits our ability to react, since users may (for 
their own reasons) want to restrict to a specific Qt version.

I am not going to accept a null-pointer dereference in there. The 
static_cast<T *>(nullptr)-> must go.

> > 
> > But see Ville's email. I think the pointer arithmetic is actually fine.
> > Would be fine too with uchar*.
> 
> What we’re doing is basically the reverse operation of:
> 
> T* o = ...;
> U *m = &o->m;
> 
> We need to go from the pointer to m back to the pointer of the surrounding
> object. While one way it perfectly defined by C++, there is unfortunately
> no way to reverse the operation in the standard. 

Time to write a paper for the C++ committee.

-- 
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

Reply via email to