Windows上でのGTKmm(移植) - sigc :: mem_funは、VC ++ Express 2010からテンプレート引数を推測するエラーを返す

Linuxで開発されたGTKmmアプリケーションをWindowsに移植しようとしています。私は複数の選択肢を持つツリービューを持っており、それらの選択肢をstd :: vectorに入れる必要があります。私が使用しているコード(これはLinuxでうまくいきます)は次のとおりです:

        std::vector rows;
    mp_FileDetailsTree->treeSelection()->selected_foreach_iter(
        sigc::mem_fun(rows, &std::vector::push_back)
        );

しかし、Windowsでは、(Visual C ++ Express 2010)私はこのエラーをかなり受け取りました(かなり繰り返しました):

error C2784: 'sigc::bound_const_volatile_mem_functor7 sigc::mem_fun(T_obj &,T_return (__thiscall T_obj2::* )(T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7) volatile const)' : could not deduce template argument for 'overloaded function type' from 'overloaded function type'
      c:\devel\gtkmm\include\sigc++-2.0\sigc++\functors\mem_fun.h(6196) : see declaration of 'sigc::mem_fun'

右はsigc :: mem_fun行にあります。

どのように私はこれを修正することができますどのような考え?私はGTKmm 2.22(フルWindowsインストーラ)を使用しています。

0
心配しないで、私はsigc :: mem_funを使わないようにコードを変更しました。代わりにGtk :: TreeSelection :: get_selected_rows()を代わりに使用しました。
追加された 著者 Brandon Aubie,

1 答え

シグナルハンドラとしてstd :: vector :: push_backを直接使うことはやや意欲的です。私はコンパイラが混乱していることに驚くことはありません。

私は、通常のシグナルハンドラメソッドを使用し、そのメソッドの中でvector :: push_back()を呼び出すだけです。

1
追加された
それについて何が曖昧ですか?
追加された 著者 Brandon Aubie,