On Thursday 14 May 2015 02:04:44 Thiago Macieira wrote: > On Thursday 14 May 2015 02:13:59 Marc Mutz wrote: > > On Wednesday 13 May 2015 09:30:05 Thiago Macieira wrote: > > > The drawbacks only appear in debug builds, so is this worth the > > > uglification? > > > > No, the drawbacks are *due to* MSVC debug builds. They *appear* in > > release builds and all platforms, too. Exporting the whole class > > restricts what kind > > > > of changes we can make in a BC way. See e.g. QStringRef: > > // ### Qt 6: make this constructor constexpr, after the destructor is > > > > made trivial > > > > inline QStringRef():m_string(0), m_position(0), m_size(0){} > > // ### Qt 6: remove this copy constructor, the implicit one is fine > > inline QStringRef(const QStringRef &other) > > > > :m_string(other.m_string), m_position(other.m_position), > > > > m_size(other.m_size) > > > > {} > > > > // ### Qt 6: remove this destructor, the implicit one is fine > > inline ~QStringRef(){} > > > > I remember many more situations where this prevented useful changes, > > though I'd have to dig deeper to provide details. > > None of the three in your example are due to DLL exporting, outside of MSVC > debug builds. > > The restriction on removing them right now is because doing so would make > the class trivially copyable or even trivial, which in turn means it's > passed differently (in registers) when passed by value. That has nothing > to do with DLLs and we cannot make trivial what wasn't trivial or > vice-versa.
Interesting. I didn't know that. Please document it on https://techbase.kde.org/Policies/Binary_Compatibility_Issues_With_C++ I guess that means we should revert ab8366b5923ec0feb730df98040885669f7bbe38, too? Then again, C++98 doesn't have the concept of trivial types. And QStringRef, after the proposed changes for Qt 6, still isn't a C++98 POD. Does that mean that C++11/C++98 builds become binary incompatible? Thanks, Marc -- Marc Mutz <marc.m...@kdab.com> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ Development mailing list Development@qt-project.org http://lists.qt-project.org/mailman/listinfo/development