Wie kann ich variable Template Vorlage Parameter curry?

9

Variadic Vorlage Vorlagenparameter akzeptieren jede Vorlage:

%Vor%

Ich möchte Vorlagenvorlage-Klasse curry.
Das bedeutet: wenn der Parameter einen Template-Parameter als Test1 , curry::apply<T>::type get Test1<T>::type akzeptiert. Wenn der Parameter zwei Template-Parameter als Test2 akzeptiert, ist curry2::apply<T0> eine 'Partial'-Vorlage, curry2::apply<T0>::apply<T1>::type get Test2<T0,T1>::type

Ist das möglich? Weil ich den inneren Parameter num der Template-Template-Parameter nicht abfragen kann:

%Vor%     
fe263 28.01.2014, 13:22
quelle

2 Antworten

3

Einfache Lösung ist:

%Vor%

Aber es funktioniert nicht mit Templates wie Test1 und Test2 aufgrund von Kompilierungsfehlern (zumindest unter gcc ). Eine Abhilfe für dieses Problem sieht folgendermaßen aus:

%Vor%

Und jetzt Linien

%Vor%

sollte durch Zeilen ersetzt werden

%Vor%

Beispiel für die Verwendung:

%Vor%

Vollständiges Beispiel unter ideone .

    
Constructor 29.01.2014 10:48
quelle
0

Nach ein paar eigenen Problemen habe ich diese Lösung gefunden arbeiten Sie für jede Vorlagenklasse (auch die, die Sie in Ihrem Beitrag angeben).
Der Kern dieser Lösung ist is_valid_specialization , der als Voraussetzung dafür verwendet wird, ob der Curry-Prozess als vollständig betrachtet werden kann:

%Vor%

Ausgabe auf ideone

    
Tom Knapen 29.01.2014 20:47
quelle