On Saturday 29 September 2012 15:53:15 Stephen Chu wrote: > The following code generates warning about memcpy on object type: > > QList<QImage> images; > QList<QImage> future = QtConcurrent::blockingMapped(images, scaled); > > The warning: > > In file included from /Qt/5.0/qtbase/include/QtCore/qvector.h:1: > /Qt/5.0/qtbase/include/QtCore/../../src/corelib/tools/qvector.h:459:56: > warning: source of this 'memcpy' call is a pointer to dynamic class > 'QImage'; vtable pointer will be copied [-Wdynamic-class-memaccess] > > ::memcpy(static_cast<void *>(dst), srcBegin, > > (srcEnd - srcBegin) * sizeof(T)); > ~~~~~~~~ ^ > > It seems that Qt thinks QImage is a POD type?
Because QImage is registered as Q_MOVABLE_TYPE. (It is the case since Q_DECLARE_SHARED does that) It shuld be safe in that case, because virtual table pointer should be movable, and we know that we have arrays of QImage and not the derived type. But this warning may be annoying. Maybe should we work around it -- Olivier Woboq - Qt services and support - http://woboq.com _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
