あるシグナルハンドルを様々なウィジットから発行されるシグナルを捕捉するために使うときに、余分の情報を渡したくなることがあるはずです。例えば、どのボタンがクリックされたのかハンドラに知らせる場合を考えましょう。このような場合、sigc::bind()が使えます。以下のコード片は改良版helloworldのものです(後で見ることになるでしょう)。
m_button1.signal_clicked().connect( sigc::bind<Glib::ustring>( sigc::mem_fun(*this, &HelloWorld::on_button_clicked), "button 1") );
ここでは、シグナルがGlib::ustring引数を余分にシグナルハンドラへ渡すようにしています。その値は"button 1"になります。もちろんシグナルハンドラはこの余分な引数を受け取ることができるように宣言しておかなくてはいけません。
virtual void on_button_clicked(Glib::ustring data);
知っていることでしょうが、通常の"clicked"シグナルハンドラは引数を取りません。
sigc::bind()を使うことは一般的ではないですが、役立つと思える場面が多々あるはずです。もしもGTK+プログラミングをよく知っているなら、これは全てのGTK+のコールバック関数が持っている余分のgpointer data引数と似ていることにおそらく気づいたのではないでしょうか。この引数はGTK+一般で継承ウィジットのメンバデータを収めた情報を渡す用途に非常によく使われています。Cでウィジットを継承するのは非常に難しいことですが、gtkmmではこのようなハックを行う必要はありません。