Stavo solo scrivendo una fabbrica di oggetti generica e utilizzando la meta-libreria del preprocessore boost per creare un modello variadico (utilizzando il 2010 e non li supporta). La mia funzione utilizza riferimenti rval e std::forward
per eseguire un inoltro perfetto e mi ha fatto pensare ... quando uscirà C ++ 0X e avessi un compilatore standard, lo farei con veri modelli variadici. Ma come posso richiamare std::forward
gli argomenti?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
L'unico modo in cui riesco a pensare richiederebbe il disimballaggio manuale di ... params e non ci sono ancora del tutto. Esiste una sintassi più rapida che funzioni?
void f(Params&& ...params)