thread()
関数のような関数を作成したい(N個のパラメータを取得する)。私は、このようなテンプレートを使用することがあると思う:その関数パラメータを持つ他の関数を呼び出すテンプレート関数を作成する
template <typename Func, typename Param1, ...>
void function(params)
{
}
をしかし、私の機能のために、私はパラメータの限られた数を設定する必要があります。 thread()
関数では、この関数にN個のパラメータを与えることができます。どのようにして関数を作成し、関数params内で同じパラメータを与えることが可能ですか?
template <typename Func, typename Param1, typename Param2, typename Param3 = typename()>
void Remote_function_caller(Func Function_name, Param1 P1, Param2 P2, Param3 P3 = Param3())
{
Function_name(P1, P2, P3);
}
void Tool1(int Data1, int Data2)
{
}
void Tool2(int Data1, int Data2, int Data3)
{
}
void main()
{
// Call tool 1
Remote_function_caller(Tool1, 5, 6);
// Call tool 2
Remote_function_caller(Tool2, 5, 6, 9);
}
私は可変引数テンプレートを使用することをお勧め...
バリデーションテンプレートを調べます。 – NathanOliver