Service: C/C++ Tipps: Grundlegendes zur vorlagenbasiserter Programmierung
Die vorlagenbasierte Programmierung (template programming) scheint auf den ersten Blick eine außerordentlich schwierige und undurchschaubare Technik zu sein. Auf der anderen Seite hat sie ein aussergewöhnliches Leistungspotential. Deswegen lohnt es sich ganz sicher, sich mit dieser Technik näher zu befassen.
An vielen Stellen wird im Zusammenhang mit vorlagenbasierter Programmierung von Meta-Programmierung gesprochen. Etwas schlichter könnte man auch 'programmiertes Programmieren' sagen. Anders gesagt: Sie haben eine Technik zur Hand, die es Ihnen ermöglicht, indirekt zu programmieren. Noch anders: Sie weisen Ihren Kompiler an, Quellcode je nach aktueller Anforderung auf die eine oder andere Art zu übersetzen.
Nehmen wir folgende Template-Funktion:
template<typename T>
T Max(T t1, T t2)
{
return t1 > t2 ? t1 : t2;
}
Wenn Sie diese Funktion irgendwo wie folgt aufrufen:
double rKlein = 1.5;
double rGross = 5.1;
double rMax = Max(rKlein, rGross);
Dann wird das Übersetzungsprogramm folgende Version von Max() erstellen (und verwenden):
double Max(double t1, double t2)
{
return t1 > t2 ? t1 : t2;
}
Demnach erzeugt folgender Aufruf eine entsprechend andere Version von Max():
long lKlein = 1;
long lGross = 5;
long lMax = Max(lKlein, lGross);
long Max(long t1, long t2)
{
return t1 > t2 ? t1 : t2;
}
Hinweis: Natürlich wird die vorstehende Version von Max() nicht wirklich erzeugt, sondern der entsprechende Assembler-Code. Für das Verständnis der vorlagenbasierten Programmierung ist es aber nützlich sich vorzustellen, das Übersetzungsprogramm würde vorstehenden Code erzeugen.
Wenn Sie wissen wollen, was so alles auf Ihrem PC passiert!
Tischrechner als Software.
Jetzt herunterladen und kostenlos testen!
Tastenkombinationen können PC-Arbeit erheblich beschleunigen.
Eine Reihe von kostenlosen Online-Berechnungen zur Erleichterung der täglichen Arbeit.
Sicherheit im PC-Bereich
Es existiert eine kostenlose, einfache und äußert effektive Methode, fast alle Viren, Trojaner, Würmer ...