It might be more instructive to describe these by the effects they have: On Friday 10 July 2015 10:05:40 Curtis Mitch wrote: > Q_PRIMITIVE_TYPE
Imples Q_MOVABLE_TYPE. In addition, the default ctor is replaced by memset(0) and the dtor call with nothing. > Q_MOVABLE_TYPE Has nothing to do with C++11 move semantics! The default ctor and the dtor are run, but for relocating an object in memory, e.g. when growing a container, memcpy is used and the old memory does not have it's dtors called. IOW: realloc() can be used on array of these types. > Q_COMPLEX_TYPE (the default) the default ctor and dtor are called. In addition, for relocating the type in memory, the copy ctor is used (and the dtor is called on the old memory). The copy ctor could be replaced by the move ctor, but our containers don't do that, yet. Thanks, Marc PS: the docs for QList are an outright lie. QList is not a good default container, and it does not produce less executable code than QVector, but changing the docs is a lot of work and I prefer to focus on fixing the code. But if someone would give the docs a good dose of reality back, I'd be more than willing to review such a change. -- 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