Well, but what about MSVC, for example, or some other compilers/|platforms? 
This is rhetorical question, of course. I just want to say, that we cannot 
guarantee this sort of compatibility for all build configurations. Hence, this 
is unreliable unless we have a sort of public contract like “we guarantee this, 
this, and that under some circumstances”.

--
Best Regards,

Fanaskov Vitaly
Senior Software Engineer

The Qt Company / Qt Quick and Widgets Team

On 29 May 2019, at 17:30, Olivier Goffart 
<oliv...@woboq.com<mailto:oliv...@woboq.com>> wrote:

On 29.05.19 17:17, Mutz, Marc via Development wrote:
But of course, that's a fallacy, because as soon as Qt internally uses said 
inline functions, every use of them by the user with a different STL is an ODR 
violation and therefore UB. So, again AFAICT, the decision was that we can use 
std types in the API now, even when not inline.
Someone correct me if I'm wrong.

I believe you are right. But binary compatibility, as a whole, is a ODR 
violation, and therefore is UB. (Unless we really do not touch any of the 
existing class in a public header files, not even to add a typedef or a method 
in them)

In practice, however, it works. Same as changing the stdlib, because they also 
keeps binary compatibility across version and libc++ and libstdcpp are in 
different namespace.

--
Olivier

Woboq - Qt services and support - https://woboq.com - https://code.woboq.org
_______________________________________________
Development mailing list
Development@qt-project.org<mailto:Development@qt-project.org>
https://lists.qt-project.org/listinfo/development

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

Reply via email to