Если по значению, то это дороже выходит? Или для сигналов-слотов - без разницы?
C++ (Qt)
signals:
void signalWithContent( const QString &content );
C++ (Qt)
signals:
void signalWithContent( QString content );
Если DirectConnection - то все так же как в языке, передача по (часто константной) ссылке лучше. В остальных случаях надо считаться с возможностью что content будет уже удален к моменту получения сигнала. Тогда часто по значению (имплисит шара поможет) - но не всегда, напр
C++ (Qt)
void signalWithContent( QString & content );
void signalWithContent( QString * content );
Если нам надо чтобы сигнал заполнил content - придется делать так, и позаботиться чтобы content был жив. Ничего плохого в этом нет. Как и во многих др случаях, какого-то единого правила здесь нет, надо делать по смыслу