我有以下功能;
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");
任何人都有提示,甚至解决方案?
注意:代码可以在; Linkage
答案 0 :(得分:5)
您可以返回std::function
,也可以创建命名的函数对象类型。