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%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:
Und jetzt Linien
%Vor%sollte durch Zeilen ersetzt werden
%Vor%Beispiel für die Verwendung:
%Vor%Vollständiges Beispiel unter ideone .
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:
Ausgabe auf ideone
Tags und Links c++ c++11 templates variadic-templates