确定可变参数C++的返回类型11模板拉姆达函数
我有以下功能;确定可变参数C++的返回类型11模板拉姆达函数
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;
}
那我似乎无法找到一个可行的返回类型,或者方法来调用,我希望能够都这样称呼它;给定'f','arg'和'param'为;如果'f','arg'和'param'为'0',则为'0'。
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
您可以返回std::function
或创建一个命名的函数对象类型。
我试图使用std ::函数,没有任何运气,我宁愿不依赖库(甚至不是标准的) – Skeen 2013-03-06 12:07:53
然后你的问题太局限了。 – 2013-03-06 12:13:13
Closevote大炮...火!现在真的,不使用标准库的原因是什么? – 2013-03-06 12:13:32
问题:你知道“参数”和“参数”之间的区别吗? – Xeo 2013-03-06 12:37:34
@Xeo:我知道命名不好,是的,一旦系统正常工作,它可能会改变。 – Skeen 2013-03-06 12:38:28
这不仅仅是关于命名是“坏” - 如果你不知道它们代表什么,你希望如何正确地实现这样的东西?有了“参数”和“参数”的正确定义,这段代码并没有太多意义(阅读:无)。 – Xeo 2013-03-06 12:40:20