Ich habe gelesen this, this, this und viele andere ... aber keiner dieser Beiträge antwortet oder ist auf mein spezifisches Problem anwendbar.Variadic Vorlage Konstruktor mit mehreren Parametern Packs
Ich habe eine Struktur X
mit einem variadische Template-Konstruktor:
struct X
{
template<typename... T>
X(T... t) { /*...*/ }
};
Und ich habe eine Struktur Y
die X
zwei Objekte vom Typ enthält. Ich möchte eine Vorlage Konstruktor für Y
definieren, so dass man richtig, beide Mitglieder des Typs initialisieren X
mit unterschiedlichen Parameter-Liste, also etwas, das wie dem folgenden Code aussieht (was natürlich nicht funktioniert):
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;
};
Wie konnte Ich mache das, indem ich Wrapper, Tupel oder irgendeine geeignete Metaprogrammierungsmaschine benutze? Eine C++ 14-Lösung ist akzeptabel.
@ πάντα ῥεῖ: Ich bitte für C++ 14; Die Frage, die du verlinkt hast, ist vielleicht eine passende Lösung für mein Problem, aber es ist 2 Jahre alt! vielleicht gibt es einen besseren mit C++ 14. – shrike
Ich bin nicht so sicher, dass C++ 14 viel über das Entpacken von VTPs geändert hat, aber gut ... –
@ πάντα ῥεῖ: Sie sind sich nicht sicher? Ich bin mir ziemlich sicher, dass C++ 14 ein paar neue interessante Funktionen zum Auspacken von Tupeln hinzugefügt hat ... – shrike