| ■No69661 (774RR さん) に返信 お返事ありがとうございます。 URLまでご提示いただきありがとうございます。 おかげさまで理解はしてもらえましたが、テンプレートが嫌いなようで、理解はしたが納得はできないの一点張りでした。 上に書いたように関数テンプレートを使うことで何とか許してもらえました。
関数の引数が型推定できるパターンだと以下のように完全に省略して書けるようになりました。 Function<void> f; f.Set(this, &MyClass::MyFunc1, 10, 1.234, _T("ABC")); f(); // this->MyFunc1(10, 1.234, _T("ABC"));
関数の引数が型推定出来ないパターンでも関数ポインタ型は判るので問題なくなりました。 Function<int> f; f.Set<MyClass, int&, int&>(this, &MyClass::MyFunc2, 10, 20); int r = f(); // this->MyFunc2(10, 20); |