非スタティックメンバ関数をメンバ関数ポインタを使って呼ぶためにはクラスのインスタンスが当然必要である。
クラスのインスタンスを第一引数として渡せるようにするのがmem_funである。
クラスのインスタンスを第一引数として渡せるようにするのがmem_funである。
void (A::*pFunc)() = &A::Func; //メンバ関数のポインタ A a; a.*pFunc(); // 呼び出すにはインスタンスaが必要 std::mem_fun(&A::Func)(a); // こういう呼び出し方 template<> mem_fun::operator()(A& a) // std.tr1.bind や boost.bindを使えば関数オブジェクトになる boost::bind(&A::Func, boost::ref(a))();
コメントをかく