私は次の機能を持っています。
template<typename T, typename U, typename... Parameters>
void transform(void (*func)(Parameters...))
{
auto lambda_function = [func](T args, U params)
{
auto combined = std::tuple_cat(args, params);
helper(func, combined);
};
return lambda_function;
}
実行可能なリターンタイプ、または呼び出す方法が見つからないように思われるので、これと同じように呼び出すことができるようにしたいと思います。
auto func = transform<std::tuple<char,int>, std::tuple<const char*>>(f);
func(arg, param);
'f'、'arg'、および'param'を;として指定します。
void f(char arg1, int arg2, const char* arg3);
std::tuple<char,int> arg = std::tuple<char,int>('C',-3);
std::tuple<const char*> param = std::tuple<const char*>("PO");
誰かがヒント、あるいは解決策を手に入れましたか?
注:コードは次の場所にあります。リンケージ