1
基本的には、function_Aを任意のパラメータでT_functionに渡して、T_functionがいくつかのコマンドを実行してから渡された関数を呼び出すことができるようにしたいと考えています。C++:1つのパラメータで任意の関数を受け入れるテンプレート?
これは私が思いついたものですこれは私の目標をもっと明確にするかもしれません):
template <typename t_return, typename t_param>
void foo(t_return (*func)(t_param), t_param p)
{
//do code
func(p);
}
foo<void, int>(&someFunc, someInt);
上記のコードは素晴らしいですが、迷惑なようです。私はまたそれがいかにばかげているか確信していない。もう少し理解を持っている人はどれも改善していますか? 私はこれをオンラインで調べようとしましたが、検索することは困難でした。
関数テンプレートを呼び出すときに '&someFunc'の代わりに' someFunc'でも大丈夫です。 – Nawaz
ありがとう!私は、あなたが非関数をF.として使用するのを妨げることに気づいていませんでした。 – Rakosman
実際には、 'Func'が' operator() 'をオーバーロードしている限り、非関数を' func'として渡すことができます。しかしこれはおそらく望ましい動作です。 –