Saya baru saja menulis pabrik objek generik dan menggunakan pustaka meta preprocessor boost untuk membuat template variadic (menggunakan 2010 dan tidak mendukungnya). Fungsi saya menggunakan referensi rval dan std::forward
melakukan penerusan sempurna dan itu membuat saya berpikir ... ketika C ++ 0X keluar dan saya memiliki kompiler standar, saya akan melakukan ini dengan template variadic nyata. Namun, bagaimana saya akan meminta std::forward
argumen?
template <typename ...Params>
void f(Params... params) // how do I say these are rvalue reference?
{
y(std::forward(...params)); //? - I doubt this would work.
}
Satu-satunya cara yang dapat saya pikirkan akan memerlukan pembongkaran manual dari ... params dan saya juga belum sampai di sana. Apakah ada sintaks yang lebih cepat yang akan berfungsi?
sumber
void f(Params&& ...params)
void f(Ar&& ...arg)