[Development] A modest proposal: disable lower-case keywords (emit, foreach, forever, signals, slots) by default

Konstantin Tokarev annulen at yandex.ru
Fri Feb 21 14:23:15 CET 2020



21.02.2020, 16:18, "Ville Voutilainen" <ville.voutilainen at gmail.com>:
> On Fri, 21 Feb 2020 at 14:58, Sérgio Martins <sergio.martins at kdab.com> wrote:
>>  > Why do I need to know that it's a signal being emitted? How is that
>>  > "vital information"? I could just as well
>>  > invoke any other callback, but I find myself not exactly yearning for
>>  > being able to write
>>  > callback somethingHappened();
>>
>>  Signals have different semantics than regular functions.
>
> In what way?
>
>>  If I'm reading the body of makePlane() I can ignore the signal
>>  emissions, as they aren't important for how a plane is made, they just
>>  inform whoever is listening.
>
> That doesn't seem to be correct in general. Some signals absolutely
> must be emitted
> for clients to work correctly.
>
>>  And I'd argue that the emitter shouldn't even know who or how many slots
>>  are connected to the signal, might even be zero, it shouldn't matter.
>
> ..and? What does that have to do with whether you do or do you emit?

E.g. it's possible to check if there are any listeners on the signal, and make
a shortcut in code if there aren't any. I've seen such code somewhere in qtwidgets

-- 
Regards,
Konstantin



More information about the Development mailing list