Ich habe eine Klassenvorlage und ich kann mir nicht vorstellen, wie man eine Variadic-Template-Stil-Instantiierung durchführt.
Hier ist der "Code" soweit von dem, wonach ich suche:
%Vor%Offensichtlich wird das nicht kompiliert :). Die Idee besteht darin, eine Klasse zu erstellen, die die übergebenen Werte (falls vorhanden, kann nur _Classname / U definiert) für den Konstruktor speichert, damit sie später abgerufen werden können, um sie in einer anderen Funktion an m_Functor weiterzugeben.
Erstens: Kann Variadic Template auch in VS2010 gemacht werden? Ich bekomme nur mit der Template-Deklaration error C2143: syntax error : missing ',' before '...'
von der Zeile template<typename _Classname, typename... Args>
Zweitens, kann das, was ich zu erreichen versuche, getan werden? Danke!
Ich glaube, das Folgende wird tun, was Sie wollen. Zuerst benötigen Sie ein Dienstprogramm:
%Vor%Dann können Sie das verwenden, um ein Tupel zu erweitern, das Ihre Argumente enthält:
%Vor%Soweit VS2010 variadic Vorlage Unterstützung: Ich habe keine Ahnung.
Variadische Vorlagen sind ein Patch nach einem Hack auf einem Hack - Sie werden das nicht genießen. Die Art und Weise dies zu tun (von meinem Kopf) ist, Template-Spezialisierung zusammen mit Vererbung zu verwenden. Etwas in dieser Richtung:
%Vor% Ich habe das noch nie gemacht und habe es nicht getestet, aber das ist die allgemeine Idee. Sie können sich eine std::tuple
Implementierung für etwas anschauen, das tatsächlich funktioniert.
Tags und Links c++ visual-studio-2010 templates variadic