On Friday October 12 2012, Thiago Macieira wrote: > > Not harder to use than Q_PRIVATE_SLOT, IMO. More annoying, yes, because > > of boilerplate code (of which Q_PRIVATE_SLOT also has some, mind). > > Real-life example: > > [snip] > > I'd rather explore options like what Olivier is proposing. The functors, as > you showed, all need to keep a pointer to the original object, which > QObjectPrivate already carries.
Yes, I like that interface better, too. However, the function pointers apparently cause a lot of extra text to be emitted which the functor version doesn't have because of inlining into the QSlotObjectBase (guessing here). In one version, I was able to _reduce_ the text size of the functor solution wrt. the original Q_PRIVATE_SLOT version. If we could get the overhead of Olivier's interface down to zero or even negative (as proven possible), then I'd be all for it, but I think the penalty is too high with the current implementation, in particular if there are only a few slots in a class. The itemmodels change is a very favourable pick, I think, but still generates 5.5k of additional text, while saving "only" 2.5k of data: text data bss dec hex filename 4113990 125672 5240 4244902 40c5a6 lib/libQtCore-conn.so.5.0.0 4108452 128296 5240 4241988 40ba44 lib/libQtCore-orig.so.5.0.0 But removing the Compare operation (which will likely break disconnect?) and overloading connect() for presence of the fifth argument only reduces text size by 500 bytes, so I'm out of ideas. Thanks, Marc -- Marc Mutz <[email protected]> | Senior Software Engineer KDAB (Deutschland) GmbH & Co.KG, a KDAB Group Company www.kdab.com || Germany +49-30-521325470 || Sweden (HQ) +46-563-540090 KDAB - Qt Experts - Platform-Independent Software Solutions _______________________________________________ Development mailing list [email protected] http://lists.qt-project.org/mailman/listinfo/development
