Estaba escribiendo una fábrica de objetos genéricos y usando la metabiblioteca del preprocesador de impulso para hacer una plantilla variadic (usando 2010 y no los admite). Mi función usa referencias rval y std::forward
para hacer un reenvío perfecto y me hizo pensar ... cuando salga C ++ 0X y tuviera un compilador estándar, haría esto con plantillas variadas reales. Sin embargo, ¿cómo podría recurrir std::forward
a los argumentos?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
La única forma en la que puedo pensar requeriría el desempaquetado manual de ... parámetros y tampoco he llegado todavía. ¿Existe una sintaxis más rápida que funcione?
c++
c++11
variadic-templates
rvalue-reference
perfect-forwarding
Edward extraño
fuente
fuente
void f(Params&& ...params)
void f(Ar&& ...arg)