私はキーボード入力を関数にマッピングしています。私はかなりの部分をしましたが、今は文字列を関数にバインドして、その文字列を参照するキーが押されたときに呼び出されるようにする必要があります。C++の異なるクラスのメソッドのマップ
テンプレート void BindStringToAction(std :: string key、T * obj、R(T :: * methodPointer)(float));
しかし、問題は引き続き使用するために保管しておくことです。これらのメソッドは基本クラスを持ち、すべて同じ入力(float)と戻り値の型(void)を持つことができますが、それらをマップに格納するにはClassNameが必要です。
本質的に問題は、文字列とメソッドポインタのマップをどのように格納するのかです。後者はどのクラスにも配置できます。
同じことを実行しますが、実装や同様の情報が見つかりません。私はstd :: functionを見つけましたが、それはまた、変化するクラス名にも依存しているので、マップを作ることはできません。
Builderを作成してマップを作成し、ビルダーへの一連の命令として機能する 'pair'のリストを保存することができます。それは十分でしょうか? –
Beta
C++には、「どのクラスへのメソッドポインタ」もありません。あなたが求めていることは不可能です。達成しようとしていることを達成するには、別の方法を見つけなければなりません。 XY問題。 –
'std :: function f = [=](浮動小数値){obj-> methodPointer(val);} }; '。これを 'std :: map >' –