actionbrowser.com
Datentypen wie das Klassen-Template isSame werden in der Template-Metaprogrammierung verwendet, um Funktionen zu simulieren. Template-Spezialisierung: Mehr Details zu Klassen-Templates | heise Developer. Basierend auf meiner Definition von Metafunktionen, können constexpr -Funktionen auch zur Compile Time ausgeführt werden und sind somit auch Metafunktionen. Eine Metafunktion kann nicht nur einen Wert, sie kann auch einen Datentyp zurückgeben. Per Konvention gibt eine Metafunktion einen Wert mittels::value und einen Datentyp mittels::type zurück. Die folgende Metafunktion removeReference gibt einen Datentyp als Ergebnis zurück.
Gleichzeitig ist es immer sinnvoll, neben der Trennung von Logik und Darstellung auch Inhalt und Layout separat zu halten, gerade dann, wenn das Projekt immer größer wird. Eine Template Engine kann hier helfen. Im erstellten Template werden für die Umsetzung im HTML-Code Variablen eingebaut, die später mithilfe einer Template Engine durch die gewünschten Werte ersetzt werden. Der Vorteil liegt darin, dass der HTML-Code schlanker und übersichtlicher wird, statischer Text mit dynamischen Inhalten verknüpft werden kann und der Designer unabhängig vom Programmierer arbeitet. Ein Nachteil neben einem zusätzlichen Overhead ist sicherlich, dass die Programmierung mit einer Template Engine gute Kenntnisse der Materie voraussetzt. Template c++ beispiel download. Viele weitere Templates Diese oben beschriebenen Template-Arten stehen für eine ganze Reihe von Applikationen, in denen Templates unterschiedlichster Ausrichtung eine Rolle spielen. Es handelt sich aber immer um Vorlagen, Schablonen oder Vorschriften. Bei der Verwendung von URL-Templates werden beispielsweise bestimmte Parameter in der URL durch Werte ersetzt, damit schlussendlich eine vollständige und korrekte URL erhalten wird.
Die Idee ist nun, eine Reihe Templates zu entwerfen, die einen einfachen Ausdruck (wie oben) durch den – meist umfangreicheren – Quelltext ersetzen, der das gewünschte Ergebnis berechnet. Hierzu ruft man sich in Erinnerung, dass der obige Ausdruck auch als Baum dargestellt werden kann: + / \ * * / \ / \ c x x y Nun benötigt man eine Wrapper-Klasse, die einen einzelnen Ausdruck (hier: ein Knoten) darstellt und die zugehörige Funktion unterlegt. Dann muss man nur noch eine Template-Klasse für die jeweilige Operation und deren Operations-Template anlegen (siehe Beispiel weiter unten).
234; // Initialisieren der Vektoren... x = c * x + x * y; Bibliotheken [ Bearbeiten | Quelltext bearbeiten] Boost uBLAS Blitz++ ( Memento vom 27. Juli 2011 im Internet Archive) Siehe auch [ Bearbeiten | Quelltext bearbeiten] Template (Programmierung) Boost (C++-Bibliothek) Einzelnachweise [ Bearbeiten | Quelltext bearbeiten] S. B. Lippman: C++ Gems. Cambridge Univ. Press, Cambridge 2003, ISBN 0-13-570581-9. D. Vandevoorde, N. M. Josuttis: C++ Templates. Addison-Wesley, 2003, ISBN 0-201-73484-2. ↑ Todd Veldhuizen: Expression Templates. (Nicht mehr online verfügbar. ), Juni 1995, archiviert vom Original am 24. Mai 2013; abgerufen am 7. Juni 2013. Klaus Iglberger, Georg Hager, Jan Treibig, Ulrich Rüde: Expression Templates Revisited: A Performance Analysis of Current Methodologies. Templates Begriffserklärung & Definition. In: SIAM Journal on Scientific Computing. Band 34, Januar 2012, S. C42–C69, doi: 10. 1137/110830125.
Auch in sehr komplexen Systemen werden Templates eingesetzt, zum Beispiel, um Algorithmen zu beschreiben, ohne dass bestimmte Datentypen im Vorfeld festgelegt werden müssen. Templates werden immer zu einer Vereinfachung oder Arbeitserleichterung beitragen. Dieser Beitrag darf zitiert und geteilt werden. Link zum Beitrag: Bildnachweis: Zurück zur Hauptseite: t