2013-06-13 17 views
6

Ich lese durch Modern C++ Design und der Gedanke kam mir auf, dass das Typlistenkonstrukt durch variadische Vorlagen ersetzt werden kann. Beide scheinen sich auf die Rekursion zu stützen, um den ersten Typ in der Liste und den Rest der Liste getrennt zu verarbeiten. Gibt es irgendwelche Typlisten, die eine variadische Vorlage nicht ermöglichen?Werden Typisten vollständig durch variadische Vorlagen ersetzt?

Antwort

8

Typelisten ermöglichen Ihnen ein paar Dinge. Zum Beispiel können Sie kein variadische Argument Pack als Ergebnis einer metafunction haben - es gibt einfach keine Möglichkeit, so etwas zu äußern:

template <typename... Args> 
struct argpack_id { 
    typedef Args result; 
}; 

du mit Typlisten tun.

Auf der anderen Seite, sollten Sie vielleicht die Typliste selbst als

template <typename... Args> 
struct TypeList {}; 
implementieren
Verwandte Themen