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