M
queer_boy schrieb:
moormaster schrieb:
Meine Frage ist nun, wozu bei der Templateklasse A extra der Typparameter U eingeführt werden muss, obwohl dieser sonst nie direkt verwendet wird?
gute frage. muss man auch nicht.
template <template <typename> class X>
class Foo
{
};
Also geht es nur darum, eine Art Signatur festzulegen für die Templates, die dort als Parameter akzeptiert werden sollen?
kommt darauf an, was du tun willst. du kannst z.b. für SPEICHER ein default-template argument angeben, wenn du mit template-templates arbeitest.
template-templates sind eben ein sprachmittel mehr, das oft ganz hilfreich ist - deine frage liest sich also ein bisschen so wie "warum templates verwenden, wenn man auch ohne programmieren kann?"
Das bezog sich auch eher auf das Beispiel aus dem PDF... wahrscheinlich ist es nicht das beste, um die Vorteile für den Einsatz von Templates als Parameter zu verdeutlichen. Das wird wohl dann etwas klarer, wenn man das Template A noch etwas modifiziert:
template <class T, template <class U> class SPEICHER>
class A {
SPEICHER<T> speicher;
SPEICHER<int> speicher2;
SPEICHER<char> speicher3;
...
};
Dann würde das Template SPEICHER auch wirklich mehrfach mit verschiedenen Templateparametern verwendet werden und somit sieht man auch besser, dass es sich lohnen kann, Templates als Parameter zu verwenden