[Development] Qt 5 types under consideration for deprecation / removal in Qt 6

Thiago Macieira thiago.macieira at intel.com
Thu May 30 20:27:05 CEST 2019


On Wednesday, 29 May 2019 08:17:15 PDT 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.

That's not correct. Keeping from the ODR violation is exactly why libc++ uses 
std::__1 namespace for its types. This allows for perfectly and strictly 
correct separation between a Qt internal use of std::vector and the user's use 
of std::__1::vector.

*Some* symbols aren't namespaced, like std::exception and std::type_info. But 
that's still not an ODR violation because the two implementations are strictly 
compatible: the layout is the same. That's true too for the the classes in the 
abi namespace, like abi::__si_class_type_info. There's a requirement on how 
the two libraries are built, but if it's wrong, it's just a distribution 
issue.

> Someone correct me if I'm wrong.

Done.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel System Software Products





More information about the Development mailing list