シグナルとスロット機構はタイプ安全である:シグナルの署名は、受信スロットの署名が一致しなければなりません。 (実際には、余分な引数を無視することができるため、シグナルは受け取ったシグナルよりも短いシグネチャを持つ可能性があります)。シグネチャは互換性があるため、コンパイラはタイプの不一致を検出するのに役立ちます。
しかしようなコード:
QObject::connect(&source, SIGNAL(MySignal(QByteArray,QString,bool), &sink, SLOT(MySlot(QByteArray,bool));
は、 "互換性のない送信者/受信者の引数" エラーが発生します。
なぜこのようなことが起こるのですか。最後からパラメータを削除する必要があることはどこに文書化されていますか?暗黙的な変換では問題が発生する可能性があると私は理解していますが、QTは本質的に上記のように信号/スロットを接続できるメタデータで動作すると考えました。
Qt5接続構文とラムダを使って簡単に行うことができるように、無意味な疑問が少しあります。間違った接続方法を使用しています。 – IlBeldus