I see the problem. I guess adding an internal API in QtCore (likely in QtPrivate namespace), which is a friend to QFuture and gives access to its d-ptr is the only option then. At least I cannot think of a better way.
Best regards, Sona > -----Original Message----- > From: Arno Rehn <a.r...@menlosystems.com> > Sent: Friday, May 7, 2021 6:28 PM > To: Sona Kurazyan <sona.kuraz...@qt.io>; Qt development mailing list > <development@qt-project.org> > Subject: Re: [Development] QMetaType support for QFuture > > Hi Sona, > > On 07.05.21 17:11, Sona Kurazyan wrote: > > You could use the QFutureInterfaceBase (non-templated) class directly > > to build a type-erased future, that's basically what QFuture is using > > underneath. Although it's internal (not documented and is considered > > to be private), but it's declared in a public header > > (qfutureinterface.h) and you can still use it. QFutureInterfaceBase's > > methods for accessing its internals are public (with a few exceptions > > that you probably won't need to use). I hope that helps. > > Yep, that's what I thought as well. But I cannot get it from an existing > QFuture > because it's a private member. We could add some private API to extract the > QFutureInterfaceBase, however. > > Anyway, I think I'll have to add some QMetaType magic anyway for this to > work. In QtWebChannel, we get the method return value wrapped in a > QVariant, so the QFuture<T> is wrapped in a QVariant. From there, I cannot > extract the QFutureInterfaceBase in any way. > > I *could* just memcpy from QVariant's data pointer to a > QFutureInterfaceBase*, but I'm pretty sure that this is UB. > > Any pointer where to start? > > Regards, > Arno > > -- > Arno Rehn > Tel +49 89 189 166 0 > Fax +49 89 189 166 111 > a.r...@menlosystems.com > www.menlosystems.com > > Menlo Systems GmbH > Bunsenstrasse 5, D-82152 Martinsried, Germany Amtsgericht München HRB > 138145 > Geschäftsführung: Dr. Michael Mei, Dr. Ronald Holzwarth USt.-IdNr. > DE217772017, St.-Nr. 14316170324 _______________________________________________ Development mailing list Development@qt-project.org https://lists.qt-project.org/listinfo/development