> On 26 Feb 2020, at 09:16, Alex Blasche <alexander.blas...@qt.io> wrote:
> 
> 
> 
>> -----Original Message-----
>> From: Development <development-boun...@qt-project.org> On Behalf Of Lars
>> Knoll
> 
> 
>> I’m not trying to make this only about emit. But it’s the concrete problem 
>> we’re
>> facing now, and emit is IMO the one keyword where we simply don’t need a
>> replacement because it has no real semantic meaning in C++.
> 
> I don't think semantics matter here. It is all about annotation and 
> readability. With the same arguments we design APIs. While Kai's survey is 
> inconclusive about the actual solution, it is conclusive in one aspect. There 
> is a clear majority to have sth in place for annotation/readability purposes.

As Kai said, in this case a comment would do the trick just as well, no need 
for a keyword or macro:

/*emit*/ mySignal(); or
mySignal(); // emit

Both of those are IMO more readable than most of the other proposals we had.
> 
>>> Qt relies on macros a lot, and while I have not followed the latest Modules
>> development, I'm sure macros pose a problem for a modularized Qt, too
>>> 
>>> So while emit is the latest in the line of macro clashes, it's not the 
>>> first and it
>> likely won't be the last. So, please, just removing 'emit' because it's easy 
>> doesn't
>> solve the problem for `signals` and `slots`.
>>> 
>>> <dreaming>Can access specifiers have attributes....?
>>> public [[qt::slots]]:
>>> </dreaming>
>> 
>> Why do we need it, if functions can already have attributes?
> 
> Because it is in the wrong spot. I want to spot the signal call in a cpp file 
> and not a header. I must assume that the reason why we had emit in the first 
> place (besides "slots" and "signals") is the same.

Marc was asking about the declarations in the headers where we have 
signals/Q_SIGNALS and slots/Q_SLOTS. Those could be replaced by adding an 
attribute to the method declaration.

Cheers,
Lars

> 
>> public:
>> [[qt::slot]] void mySlot();
>> 
>> protected:
>> [[qt::signal] void mySignal();
> 
> I’d love to have this too (in addition to [[qt::emit]])
> 
> --
> Alex
> 

_______________________________________________
Development mailing list
Development@qt-project.org
https://lists.qt-project.org/listinfo/development

Reply via email to