假设我有一个可变参数函数foo
:
template <typename... Args>
void foo(Args... args)
{
// some work
}
我想要一个神奇的函数,它以下列方式bar
将它的参数转发给:foo
说如果我打电话
bar(x, y, z);
它的效果与
foo(x.begin(), x.end(), y.begin(), y.end(), z.begin(), z.end());
如何实施bar()
?
template <typename... Args>
void bar(Args... args)
{
// what should I put here?
// foo( (args.begin(), args.end()) ... ); // doesn't work
}