私はthis、this、thisなど多くのものを読んでいますが、これらの投稿はいずれも私の特定の問題には該当しません。複数のパラメータパックを持つVariadicテンプレートコンストラクタ
私は可変長テンプレートコンストラクタを持つ構造体X
あります
struct X
{
template<typename... T>
X(T... t) { /*...*/ }
};
をそして私はタイプX
の2つのオブジェクトを含む構造Y
を持っています。私は(明らかに動作しません)次のコードのようなもの、すなわち、適切に異なるパラメータリストを持つタイプX
の両方のメンバーを初期化することができ、Y
のテンプレートコンストラクタを定義したいと思います:
struct Y
{
template<typename... U, typename... V>
Y(U&&... u, V&&... v) // this does not work
: x1(std::forward(u)...), x2(std::forward(v)...) // this is was I need to do
{}
X x1, x2;
};
をどのようにできました私は、ラッパー、タプル、または任意の適切なメタプログラミング機械を使用して、それを行うのですか? C++ 14のソリューションが受け入れられます。
@πάνταῥεῖ:私はC++ 14を求めています。あなたがリンクしている質問は、私の問題の適切な解決策かもしれませんが、それは2歳です!おそらく、C++を使用する方が良いでしょう。 – shrike
私は、C++ 14がVTPの解凍について多くの変更を行ったとは確信していませんが、よく... –
@πάνταῥεῖ:あなたはわかりませんか?私は確かにC++ 14はタプルをアンパックするためのいくつかの新しい興味深い機能を追加しました... – shrike