我只是在编写一个通用对象工厂,并使用boost预处理器元库制作一个可变参数模板(使用2010,但它不支持它们)。我的函数使用rval引用并std::forward
进行完美的转发,这让我开始想...当C ++ 0X出现并且我有一个标准的编译器时,我将使用真实的可变参数模板进行此操作。不过,我std::forward
该如何谈谈?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
我能想到的唯一方法是需要手动解压缩... params,而且我也还没有。有没有一种更快的语法可以工作?
void f(Params&& ...params)