シグナルに接続したいシグナルハンドラがどのような型であるかを知るには、リファレンスで調べるかヘッダファイルを見てください。例として、gtkmmのヘッダファイルで見かけるシグナルの定義には次のものがあります:
Glib::SignalProxy1<bool, Gtk::DirectionType> signal_focus()
シグナルの名前(focus)以外に、ふたつ注目すべきことがあります。最初のSignalProxyに続く数字(ここでは1)と、型のリスト(boolとGtk::DirectionType)です。数字は接続するシグナルハンドラがいくつ引数をとるかを示しています。最初の型boolはシグナルハンドラの戻り値の型を、次の型Gtk::DirectionTypeはこのシグナルの第一で唯一だけ取る引数の型となっています。リファレンスにあたればこの引数の名前もわかるでしょう。
この規則はもっと引数を取るようなシグナルについてもあてはまります。次の例は三つ取るものです(<gtkmm/editable.h>からの抜粋):
Glib::SignalProxy3<void, const Glib::ustring&, int, int*> signal_insert_text()
形式は先ほどのものと同じです。数字の3が型名の後ろについているのは、接続するシグナルハンドラが引数を三つ必要とすることを表しています。型リストの第一番目はvoidですからシグナルハンドラの返り値の型もそうでなくてはいけません。残りの三つの型は引数の型を順番に並べたものです。接続するシグナルハンドラの宣言はこのようになるでしょう:
void on_insert_text(const Glib::ustring& text, int length, int* position);