On Monday 15 June 2015 17:24:39 Marc Mutz wrote:
> Qt's binary compatibility is between Qt versions, not between toolchains,
> and  as such, I don't see a problem saying that if you change the toolchain
> (STL (version)), then the BC guarantees are voided. That's just what we
> have now already.

I disagree. I understand what you said, but right now it is possible to switch 
from libstdc++ to libc++ with no ill effects[*]. So the question is should be 
asked the other way around: do we knowingly remove this currently-working 
ability?

[*] provided, of course, that the two share their base C++ ABI, which some 
Linux distros have not yet learned to do.

> IoW: Before we continue to ban STL types from the API because of BC
> reasons,  we first need to fix the problem with mixed debug/release builds
> on Windows (e.g. by stuffing every heap-allocated object that isn't born
> and dies in the same library, into a shared_ptr, whose custom deleter takes
> care of calling the right delete version). OTOH, if we're not fixing that
> issue, there's no point in banning STL types from the API, at least not
> with the BC argument.

That's a self-inflicted problem of MSVC. Whoever chooses to use MSVC is 
therefore choosing to live with the problems that MSVC has. MinGW has no such 
issues.

And the two things are not at all the same. In one, there's a feature from 
libc++ that we are currently making use of. In the other, there's an MSVC 
defect that we are not currently working around.

-- 
Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

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

Reply via email to