El Thursday 23 April 2015, Alejandro Exojo escribió: > Here I added a "static bool copy" that acts as a workaround to keep the > state across invocations.
Which is only useful for the first connect call. If you are going to use it multiple times is useless. > I want the "if" block that prints "should only > be seen once" to be called only once, but it doesn't. Is this intended? I > suppose that since lambdas are on-the-fly classes, each signal emission > creates a new instance of the class, instead of one instance and several > calls to operator(). Is that so? I've used a function object/functor instead, and yes, the copy constructor is called twice on the connect() call, and once more for each signal emission. > Another way to do it would be to let the lambda disconnect itself, but it > is quite difficult to capture the return of connect(). Or a completely different approach, since for the general case a disconnect is not enough. One might need a different path in the body of the function. I think I'll create just a small QObject subclass specific for the task, so I can control the intances myself, and self delete to destroy the connection, or whatever I need. But, man, what a pity. With the lambda function it was much simpler and clearer, IMHO. -- Alex (a.k.a. suy) | GPG ID 0x0B8B0BC2 http://barnacity.net/ | http://disperso.net _______________________________________________ Interest mailing list Interest@qt-project.org http://lists.qt-project.org/mailman/listinfo/interest