投稿Function passed as template argumentについて質問があります。提供されたコードでは:
#include <iostream>
void add1(int &v)
{
v+=1;
}
void add2(int &v)
{
v+=2;
}
template <void (*T)(int &)>
void doOperation()
{
int temp=0;
T(temp);
std::cout << "Result is " << temp << std::endl;
}
int main()
{
doOperation<add1>();
doOperation<add2>();
}
パラメーター セットのレイアウトが異なる 3 番目の関数についてはどうでしょうか。たとえば、
double add3(double v1, double v2)
{
return v1+v2;
}
これがテンプレートを使用してもまったく達成できない場合、任意の関数を別の関数に渡すにはどうすればよいでしょうか? そして、あらゆる種類の可能性を持つパラメーター セットをどのように処理するのでしょうか? タプル(kwargs**)を渡すことでPythonがそれを実行できる可能性があることは知っていますが、C / C ++についてはわかりません。