On sexta-feira, 6 de maio de 2016 12:14:14 PDT Nye wrote: > On Fri, May 6, 2016 at 8:35 AM, Tom Isaacson <tom.isaac...@navico.com> > > wrote: > > I'm moving some Qt4.8.2 code which uses QWeakPointer to Qt5.6. > > Simplifying a lot it looks like this: > > [snippet ..] > > but when I compile under Visual Studio 2013 I get this error: > > error C2664: 'QWeakPointer<MyClass>::QWeakPointer(const QSharedPointer<T> > > &)' : cannot convert argument 1 from 'MySettings *' to 'const > > QWeakPointer<MySettings> &' > > Is there a recommended method for migrating the use of QWeakPointer into > > > Qt5? > > Yes, by actually using a QSharedPointer for the constructor (as > QWeakPointer is a weak reference to a shared pointer).
That's not the same thing. For a while, we had deprecated QPointer in favour of QWeakPointer for tracking QObjects you did not own. But we came to our senses before Qt 5.0 was launched and un-deprecated QPointer for that functionality. QWeakPointer in Qt 5 is as you said: a weak reference to a shared pointer. > > I tried changing the QWeakPointer to a QPointer but now I'm getting: > > error C2440: 'static_cast' : cannot convert from 'QObject *' to MyClass *' > > (GeneratedFiles\Debug\moc_MyCode.cpp) Looks like a missing #include. -- Thiago Macieira - thiago.macieira (AT) intel.com Software Architect - Intel Open Source Technology Center _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest