VS2010 C ++ variadisches Vorlagenbeispiel

8

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>

Probleme beim Kompilieren

Zweitens, kann das, was ich zu erreichen versuche, getan werden? Danke!

    
BabelFish 21.01.2011, 20:58
quelle

3 Antworten

24

Visual C ++ 2010 unterstützt keine variadischen Vorlagen.

    
James McNellis 21.01.2011, 21:05
quelle
3

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.

    
Howard Hinnant 22.01.2011 00:50
quelle
-2

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.

    
Thomas 21.01.2011 21:10
quelle