templates



  • Hi, ich programmier jetzt schon einige zeit cpp aber templates sind für mich noch immer ein mysterium. Ich kann z.B. std::vector benutzen, weiss wie ich z.B. einen simplen container als Klassentemplate basteln kann, aber die ganze "Magie" von der man immer ließt (keine laufzeitkosten usw..) bleibt mir irgendwie verborgen. Sobald es über die nutzung von templates für variable datentypnen in klassen hinausgeht versteh ich meinstens nichtmehr was gerade im code geschiet. Kennt jemand vielleicht eine Art tutorialreihe die sich nur mit templates befasst und das ganze stück für stück beschreibt? Und vielleicht mal was anderes als zum 10000. mal einen Stack bauen.. :). Interessieren würden mich auch konktete anwendungsfälle wo mir ein template helfen kann, denn bisher hat immer alles recht gut ohne funktioniert.

    Gruss



  • Templates helfen dir zB wenn du eine Klasse oder Funktion hast die mit verschiedenen Typen funktionieren soll. Ein Beispiel du willst eine Funtkion schreiben die 2 Zahlen Multiplizieren soll und du willst das sie mit ints und doubles funktioniert, dann kannst du statt 2 Funktionen einfach eine Template Funtkion schreiben die das selbe für verschiedene Typen amchen kann.

    Hier Lektion 57 und 58 gibt einen überblick über Template Funktionen und Klassen.



  • wtf? schrieb:

    Und vielleicht mal was anderes als zum 10000. mal einen Stack bauen.. :).

    Xebov schrieb:

    Hier Lektion 57 und 58 gibt einen überblick über Template Funktionen und Klassen.

    Ich glaub genau diese simplen Beispiele wollte er nicht.



  • Juicetolose schrieb:

    wtf? schrieb:

    Und vielleicht mal was anderes als zum 10000. mal einen Stack bauen.. :).

    Xebov schrieb:

    Hier Lektion 57 und 58 gibt einen überblick über Template Funktionen und Klassen.

    Ich glaub genau diese simplen Beispiele wollte er nicht.

    Genau, ich suche beispiele wo mit Templates mal was anderes gemacht wird als Container zu bauen um vielleicht mal einen Überblick darüber zu kriegen was damit eigentlich möglich ist.

    Gruss



  • wtf? schrieb:

    Genau, ich suche beispiele wo mit Templates mal was anderes gemacht wird als Container zu bauen um vielleicht mal einen Überblick darüber zu kriegen was damit eigentlich möglich ist.

    Wenn du wirklich wissen willst was man mit Templates alles machen kann, wird kein Tutorial dir weiterhelfen. Dies ist genügend Stoff für mehrere Bücher. Und um überhaupt zu verstehen was Templates sind, sind die einfachen Dinge genau die Richtigen.

    Dies beginnt bei einfachster Typersetzung (z.B. einfache min/max-Funktion über Templates) über statischer Polymorphie (Ohne virtuell, sondern mittels Typ aufgelöst), hin zu voneinander Abhängigen Templates (Hier kann im einfachen Fall etwas wie Container/Interator schon als erklärung dienen) und bis in die Template Meta Programmierung (Die wirklich alleine schon Bücher füllen kann wenn man sich damit ernsthaft auseinander setzt).

    Ein imho guter Einstieg ist das Buch C++ Templates von Vandevoorde/Josuttis (Addison Wesley), auch wenn es nicht mehr das neuste ist.

    cu André



  • http://en.wikipedia.org/wiki/Template_metaprogramming

    Da findest du etwas. Und ansonsten kannst du dir ja das Buch von Andrei Alexandrescu kaufen.



  • Templates sind unter C++ sehr mächtig, mit der Template-Metaprogrammierung kann man sich zum Beispiel bei Bedarf Klassen, mit den gewünschten Funktionen zurückgebenlassen, also Code-Generatoren bauen. Man kann sich zum Beispiel auch Werte, die sich zur Laufzeit nicht verändern von Templates zur Compilezeit generieren lassen oder man kann sich Primzahlen als Compilerfehlermeldungen ausgeben lassen ;-).

    MfG


Anmelden zum Antworten