[Development] invokeMethod() with function pointers

Thiago Macieira thiago.macieira at intel.com
Fri Jan 20 03:06:15 CET 2017

On quinta-feira, 19 de janeiro de 2017 16:18:30 PST Grégoire Barbier wrote:
> > The return value is interesting still.
> With lambdas the return value itself can be replaced with a captured
> reference, isn't it ?
> Anyway it's still convenient to have it when calling plain old methods
> rather than lambdas.

Hmm... right. What I had proposed:

       QMetaObject::invokeMethod(object, [=]() { 
                doSomething(); return something; },

Could be rewritten as:

       QMetaObject::invokeMethod(object, [=, &foo]() { 
                doSomething(); foo = something; },

And that allows us to drop the Q_RETURN_ARG ugliness. That's much better.

PS: should we invert the argument order and have the connection type appear 
before the functor? I find it ugly to have a lambda in the middle of a 
parameter list.

Thiago Macieira - thiago.macieira (AT) intel.com
  Software Architect - Intel Open Source Technology Center

More information about the Development mailing list