【发布时间】:2016-12-22 21:26:02
【问题描述】:
对于单个函数,可以像这样提取其参数类型:
template <class T>
struct Foo;
template <class Ret, class... Args>
struct Foo<Ret(*)(Args...)> { /* stuff */ };
可以对一系列函数指针做同样的事情吗?那是, 能够提取参数然后以相同的方式重新部署它们?例如。类似:
template <class.. T>
struct Foo;
template <class... Rets, class... Args>
struct Foo<Rets(*)(Args...)...> // I wish this worked
{
std::tuple<Rets(*)(Args...)...> fns; // Ditto
}
【问题讨论】:
-
从
template <typename ...Fs> struct Foo;开始,然后为每个包成员分派到您现有的代码。 -
@KerrekSB 抱歉,您能详细说明一下吗?我不太清楚你说的后一点是什么意思。
-
你已经有了处理one函数类型的方法。您可以对不同模板包中的每个成员重复使用该工具。
标签: c++ function types parameters metaprogramming