OK、C++でのCスタイル可変関数の使用について教えられる前に、他にもQt MOCの書き換えに何も必要ないことが分かっています。Qtとvariadic関数
私が知りたいのは、任意の量/タイプの引数を取るQtオブジェクトに「スロット」を持つことができるかどうかです。私が本当に望むのは、任意の署名のスロットを持つQtオブジェクトを生成できることです。 MOCは標準的な前処理やテンプレートと互換性がないため、直接アプローチではできません。 、
struct funky_base : QObject
{
Q_OBJECT
funky_base(QObject * o = 0);
public slots:
virtual void the_slot(...) = 0;
};
あなたは、あなたがそれで新しいQtのものを宣言しない限り、QObjectの派生オブジェクトのサブクラスであるテンプレートを作ることができるので、これは、その後、可能な場合:私はちょうど別のアイデアを思い付きました私は...
のものを取り、それを適切な予想される型に変換する派生テンプレート型を実装できるはずです。
これが接続されている場合、どうすれば接続できますか?これは効果がありますか?誰もがこの非常識な何かをしようとしたんだと手をオフに知らない場合
connect(x, SIGNAL(someSignal(int)), y, SLOT(the_slot(...)));
、はい、私は最終的にはそれを自分自身を試してみましょう...しかし、私は誰か、既存た知識が、私は多分に私の時間を無駄にする前にタップすることができます期待していますそれ。
この質問はブースト::信号S2か、単に基本的な機能のような静的な信号にQtの信号を変換することができ、テンプレートオブジェクトのための「キャッチオール」基底クラスを設計する方法を見つけるための試みでした。私は、私はva_argsからパラメータを再構築するためにTMPを使用することができたバリデーショナルなテンプレートを取ったスロットを構築できると思った。問題への答えはそれほど正確でしたが、スロットがqtメカニズムによって呼び出される前にカットしました。
http://crazyeddiecpp.blogspot.com/2011/01/quest-for-sane-signals-in-qt-step-1.html
私の昔のブログの場所です:全体のことを行う方法についての記事のシリーズの最初の割賦は、私はこの問題の一部を解決する方法を紹介しました。あなたが他の奇妙な顔を見たいなら、新しい人物が私のプロフィールにあります。
NVM、私は自分の質問に答えました。もちろん、Qtもこれを行うことはできません。 –
型指定されていないスロットを持つことで、コンパイル時の型の安全性という言語の中核的な利点の1つを放棄します。 –
フランク、フランク、フランク。 Qtはすでにそれを行っています。私は型の安全を取り戻そうとしています。これは1つの失敗した試みでした。最終的な成功の話は私のブログを参照してください(私のプロフィールにあります)。 –