确定可变c++ 11模板化lambda函数的返回类型

Deciding return type for variadic C++11 templated lambda function

本文关键字:lambda 函数 返回类型 c++      更新时间:2023-10-16

我有以下函数;

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");

有人得到了提示,甚至是解决方案吗?

注意:代码可以在;链接

您可以返回std::function,或者创建一个命名函数对象类型