Ich habe eine variadische Vorlage, die eine Liste von Parametern für eine Funktion darstellt, zB:
%Vor%Gibt es eine Möglichkeit, nur die Argumenttypen aus decltype (func) zu extrahieren, um zu sparen, dass ich sie manuell schreiben muss, zB:
%Vor%ie decltype in diesem Fall würde mir "void (int, int, string)" geben, aber gibt es eine Möglichkeit, nur den "int, int, string" -Teil zur Verwendung in der variadischen Vorlage zu extrahieren?
Hinweis: Ich muss die Variadic-Template-Methode verwenden, weil sie innerhalb der Vorlage die Verarbeitung für jeden Argumenttyp nacheinander durchführt.
Hier ist eine Alternative (Ideen aus Daniel Frey s Lösung ) mit einer Funktionsvorlage anstelle einer Klassenvorlage:
%Vor%Bearbeiten : Kommentare zu meiner Lösung x Daniel Frey :
Mine spart Tippen. Sein ist mehr idiomatisch. In der Tat, in C ++ Metaprogrammierung a
"Funktion" (oder eine Meta-Funktion), die Typen akzeptiert und einen Typ zurückgibt
(in der Regel) als Template-Klasse implementiert, deren Mitglied type
gibt
Rückkehr. Aus diesem Grund bevorzuge ich seine Lösung.