3

ブーストを使用せずに、テンプレートパラメータとしてメンバー関数を渡して呼び出したいのですが可能です。これが私がやろうとしたことの例です、

class object { void method(); }

{
object object_instance;
...
apply<object:: method>();
...

template<class F>
void apply() { F(object_instance); } // want to call object_instance.F()
}

それは機能しないので、問題は、オブジェクトメソッドをオブジェクトにバインドする方法です。ありがとう

上記は例であり、実際のコードではありません。名前だけが異なる関数がたくさんありますが、多くのパラメーターがあり、演算子でラップアラウンドしたいと思います。

4

4 に答える 4

0

メンバー関数は型または整数値ではないため、テンプレート パラメーターとして渡すことはできません。メンバー関数を呼び出す構造体を作成することで、やりたいことを実行できますが、テンプレートのスコープ内に object_instance があるのはかなり臭いです。

あなたは実際に何をしようとしていますか?

于 2010-02-01T00:27:21.667 に答える