私はちょうどジェネリック オブジェクト ファクトリを作成し、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 の手動アンパックを必要とすることであり、私もまだそこにいません。動作するより高速な構文はありますか?