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