On 28/11/2014 16:13, Gunnar Roth wrote: > Hi Simon > >> 2) On paper it breaks binary compatibility with MSVC, in the unlikely event >> that somebody >> a) produces a DLL and cares about binary compatibility > > Why do you think that is unlikely? > > Actually right now i depend on that. I get stuff build against qt 5.2.1 dlls > and use that stuff and my stuff using at 5.3.2 by exchanginng thge qt dlls > with my 5.3.2 dlls , so i rely on binary compatibility.
What’s unlikely is that you get all a), b) and c) : a) produces a DLL and cares about binary compatibility b) exposes bare structures c) relies on Q_GADGET turning access permission levels to private I guess most people don’t do c). Actually, any sane person would not like a macro to change the private / public context as a side effect, and the fact that Q_OBJECT does it (because it just can’t do otherwise) should more be considered a bug / lack in C++ than anything else, certainly not a feature to rely on. However, i may be missing something but Q_GADGET needs also to explicitely change the private / public context to introduce public members. So, the initial proposal to not changing that context would require Q_GADGET to be in a public context. I guess that one would break a lot of code. Regards, Julien _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development