Я просто писав загальну фабрику об'єктів і використовував мета-бібліотеку 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.
}
Єдиний спосіб, на який я можу подумати, потребував би розпакування вручну ... парам, і я ще не зовсім там. Чи є швидший синтаксис, який би спрацював?
void f(Params&& ...params)