我目前正试图让我的头可以用variadic模板支持来做一些事情。比方说,我有这样的功能 -已知类型的C++可变参数函数模板
template <typename ... Args>
void foo(Args ... a)
{
int len = sizeof...(tail);
int vals[] = {a...};
/* Rest of function */
}
/* Elsewhere */
foo(1, 2, 3, 4);
此代码的工作,因为我事先假设的争论将是整数,但很明显,如果我提供别的东西将失败。如果我知道的参数包将包含在事先特定的类型,有一些方法,我可以不用模板,并有一些像 -
void foo(int ... a)
我试图这样做,但是编译器给了一个错误关于foo是一个无效的领域。我知道我也可以通过递归访问包中的参数,但我不确定这会解决我所遇到的问题 - 也就是说,我希望能够获取可变数目的相同类型的参数。
你可以用'enable_if',以确保所有类型的*是*整数。 –
如果你潜入一堆整数,代码将起作用。如果你给它别的东西,它不起作用。看起来任务完成。哪里有问题? –
我想问题是在编译时是否可以确保它们是整数。 – znby