On Saturday 23 May 2015 19:47:28 Thiago Macieira wrote: > On Saturday 23 May 2015 15:35:23 Иван Комиссаров wrote: > > Hi. > > > > I’ve created a QVector of QImages and tried to insert an image in the > > vector: QVector<QImage> images; > > images.insert(images.begin(), QImage()); > > > > I got a compiler warning saying > > > > "qvector.h:649:21: warning: destination for this 'memmove' call is a > > pointer to dynamic class 'QImage'; vtable pointer will be overwritten > > [-Wdynamic-class-memaccess]» > > > > This happens because QImage inherits QPaintDevice (which is virtual) and > > QImage is declared movable using Q_DECLARE_SHARED macro. > > > > Is this behavior intended? > > Yes.
In Qt 6, we should probably change that to static polymorphism. E.g. anything with a QPaintDevice * paintDevice() method on can be painted-to. I ran into the polymorphism of what should be a value class, too, already (when implementing swap). Thanks, Marc -- Marc Mutz <[email protected]> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company Tel: +49-30-521325470 KDAB - The Qt Experts _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
