2011-12-19 9 views
0

Linuxで開発されたGTKmmアプリケーションをWindowsに移植しようとしています。私は複数の選択肢を持つツリービューを持っており、それらの選択肢をstd :: vectorに入れる必要があります。私が使用して(とそれはLinuxでは正常に動作します)のコードは以下です:WindowsではWindowsでのGTKmm(移植) - sigc :: mem_funは、VC++ Express 2010からテンプレート引数を推測するエラーを返します。

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

、しかし、(C++ Expressの2010のVisual)私は、このエラー(かなり繰り返し)の多くを得る:

error C2784: 'sigc::bound_const_volatile_mem_functor7<T_return,T_obj,T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7> 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()を使用してください。 –

答えて

1

シグナルハンドラとして直接std :: vector :: push_backを使用することは、やや意欲的です。混乱している。

私は普通のシグナルハンドラメソッドを使用してベクトルを呼び出します::一back()というメソッド内。

+0

何が曖昧ですか? –

関連する問題