¿Pueden las señales Qt devolver un valor?

Boost.Signals permite diversas estrategias de usar los valores de retorno de las ranuras para formar el valor de retorno de la señal. P.ej. agregándolos, formando unavector fuera de ellos, o devolviendo el último.

La sabiduría común (expresada en la documentación de Qt[EDITAR así como algunas respuestas a esta pregunta]) es que tal cosa no es posible con las señales Qt.

in embargo, cuando ejecuto el moc en la siguiente definición de clase:

class Object : public QObject {
    Q_OBJECT
public:
    explicit Object( QObject * parent=0 )
        : QObject( parent ) {}

public Q_SLOTS:
    void voidSlot();
    int intSlot();

Q_SIGNALS:
    void voidSignal();
    int intSignal();
};

No solo no se queja de la señal con el tipo de retorno no vacío, parece implementarlo activamente de tal manera quepermiti un valor de retorno para pasar:

// SIGNAL 1
int Object::intSignal()
{
    int _t0;
    void *_a[] = { const_cast<void*>(reinterpret_cast<const void*>(&_t0)) };
    QMetaObject::activate(this, &staticMetaObject, 1, _a);
    return _t0;
}

Entonces: según los documentos, esto no es posible. Entonces, ¿qué está haciendo moc aquí?

Slots puede tener valores de retorno, entonces, ¿podemos conectar una ranura con un valor de retorno a una señal con un valor de retorno ahora? ¿Puede ser eso posible, después de todo? Si es así, ¿es útil?

EDITAR No estoy pidiendo soluciones, así que por favor no proporcione ninguna.

EDITAR Obviamente no es útil enQt::QueuedConnectionodo @ (tampoco lo es elQPrintPreviewWidget API, sin embargo, y todavía existe y es útil). Pero que pasaQt::DirectConnection yQt::BlockingQueuedConnection (oQt::AutoConnection, cuando se resuelve enQt::DirectConnection).

Respuestas a la pregunta(5)

Su respuesta a la pregunta