C++-Metaprogrammierung : eine Einführung in die Präprozessor- und Template-Metaprogrammierung /: eine Einführung in die Präprozessor- und Template-Metaprogrammierung. ([2016])
- Record Type:
- Book
- Title:
- C++-Metaprogrammierung : eine Einführung in die Präprozessor- und Template-Metaprogrammierung /: eine Einführung in die Präprozessor- und Template-Metaprogrammierung. ([2016])
- Main Title:
- C++-Metaprogrammierung : eine Einführung in die Präprozessor- und Template-Metaprogrammierung
- Further Information:
- Note: Jürgen Lemke.
- Other Names:
- Lemke, Jürgen
- Contents:
- Vorwort; Inhaltsverzeichnis; Einleitung; 1.1 Ziel und Zweck des Buches; 1.2 Vergleich zur Codegenerierung außerhalb von C++; 1.3 Syntax der verwendeten Beispiele; Literatur; Teil I: Grundlagen; C-Präprozessor; 2.1 Einbinden von Dateiinhalten; 2.2 Einfache Makros; 2.3 Makros mit Parametern; 2.4 Mehrzeilige Makros; 2.5 Umwandlung und Bearbeitung von Zeichenketten; 2.6 Bedingte Ersetzung; 2.7 Iterationen mit Makros; 2.7.1 Einfache horizontale Iterationen; 2.7.2 Iterationen mit #include; 2.8 Variadische Makros; 2.8.1 Einführung in variadische Makros. 2.8.2 Bestimmung der Anzahl der variablen Argumente2.8.3 Iterationen mit variadischen Argumenten; 2.8.4 Leere Parameter identifizieren; 2.9 Rechnen mit Makroparametern; 2.9.1 Basismakros zum Inkrementieren und Dekrementieren; 2.9.2 Addition und Subtraktion; 2.9.3 Multiplikation und Division; 2.9.4 Bestimmung von Primzahlen mit Makros; 2.10 Compiler-Direktiven; Literatur; Templates; 3.1 Funktionstemplates; 3.1.1 Deklaration; 3.1.2 Nichttyp-Parameter; 3.1.3 Reihenfolge der Templateargumente; 3.1.4 Überladung von Funktionstemplates; 3.1.5 Vollständige Spezialisierung von Funktionstemplates. 3.1.6 Rekursiver Aufruf von Funktionstemplates3.1.7 Indirekte partielle Spezialisierung; 3.2 Klassentemplates; 3.2.1 Deklaration; 3.2.2 Nichttyp-Parameter; 3.2.3 Standardwerte für Templateargumente; 3.2.4 Vollständige Spezialisierung von Klassentemplates; 3.2.5 Partielle Spezialisierung von Klassentemplates.; 3.2.6 Rekursiver Aufruf vonVorwort; Inhaltsverzeichnis; Einleitung; 1.1 Ziel und Zweck des Buches; 1.2 Vergleich zur Codegenerierung außerhalb von C++; 1.3 Syntax der verwendeten Beispiele; Literatur; Teil I: Grundlagen; C-Präprozessor; 2.1 Einbinden von Dateiinhalten; 2.2 Einfache Makros; 2.3 Makros mit Parametern; 2.4 Mehrzeilige Makros; 2.5 Umwandlung und Bearbeitung von Zeichenketten; 2.6 Bedingte Ersetzung; 2.7 Iterationen mit Makros; 2.7.1 Einfache horizontale Iterationen; 2.7.2 Iterationen mit #include; 2.8 Variadische Makros; 2.8.1 Einführung in variadische Makros. 2.8.2 Bestimmung der Anzahl der variablen Argumente2.8.3 Iterationen mit variadischen Argumenten; 2.8.4 Leere Parameter identifizieren; 2.9 Rechnen mit Makroparametern; 2.9.1 Basismakros zum Inkrementieren und Dekrementieren; 2.9.2 Addition und Subtraktion; 2.9.3 Multiplikation und Division; 2.9.4 Bestimmung von Primzahlen mit Makros; 2.10 Compiler-Direktiven; Literatur; Templates; 3.1 Funktionstemplates; 3.1.1 Deklaration; 3.1.2 Nichttyp-Parameter; 3.1.3 Reihenfolge der Templateargumente; 3.1.4 Überladung von Funktionstemplates; 3.1.5 Vollständige Spezialisierung von Funktionstemplates. 3.1.6 Rekursiver Aufruf von Funktionstemplates3.1.7 Indirekte partielle Spezialisierung; 3.2 Klassentemplates; 3.2.1 Deklaration; 3.2.2 Nichttyp-Parameter; 3.2.3 Standardwerte für Templateargumente; 3.2.4 Vollständige Spezialisierung von Klassentemplates; 3.2.5 Partielle Spezialisierung von Klassentemplates.; 3.2.6 Rekursiver Aufruf von Klassentemplates; 3.2.7 Die Verwendung von Enumeratoren; 3.2.8 Statische If-Bedingung und Switch-Anweisung; 3.2.9 Der this-Zeiger; 3.3 Template Template Parameter; 3.4 Strings als Argumente für Templateparameter; 3.5 Variadische Templates in C++11. 3.5.1 Deklaration3.5.2 Variadische Funktionstemplates; 3.5.3 Variadische Klassentemplates; 3.5.4 Metaprogrammierung mit variadischen Templates; 3.6 Das Schlüsselwort constexpr ab C++11; Literatur; Erweiterte Metaprogrammierung; 4.1 Typlisten; 4.1.1 Definition von Typlisten; 4.1.2 Arbeiten mit Typlisten; 4.2 Type-Traits; 4.3 SFINAE; 4.3.1 Das SFINAE-Prinzip; 4.3.2 Der sizeof-Trick; 4.3.3 Gruppierung von überladenen Memberfunktionen; 4.3.4 Testen auf Software-Updates; 4.4 Weitere Traits mit sizeof; 4.5 Assertion zur Kompilationszeit; 4.6 Umgehen von tiefen Rekursionen. 4.7 Neue Metafunktionen der STL in C++11 (Type-Traits)Literatur; Teil II: Techniken und Anwendungsfälle; Sichere Schnittstellen (Interfaces); 5.1 Parameterprüfung zur Kompilationszeit; 5.1.1 Prüfen von Nichttyp-Templateparametern; 5.1.2 Prüfen von Typ-Parametern; 5.2 Konfigurationstemplates; 5.2.1 Konfiguration variabler Typen; 5.2.2 Konfiguration von veränderlichen Schnittstellen; 5.2.3 Generierung von Fabrikklassen; 5.2.3.1 Entwurfsmuster Fabrikmethode; 5.2.3.2 Fabrikklassen mit Templates realisieren; 5.2.3.3 Entwurfsmuster Fabrikmethode mit Templates umsetzen. … (more)
- Publisher Details:
- Heidelberg : Springer Vieweg
- Publication Date:
- 2016
- Extent:
- 1 online resource (xiii, 390 pages)
- Subjects:
- 005.13/3
C++ (Computer program language)
COMPUTERS -- Programming Languages -- C
C++ (Computer program language)
Electronic books - Languages:
- German
- ISBNs:
- 9783662485507
3662485508 - Related ISBNs:
- 9783662485491
- Notes:
- Note: Includes bibliographical references and index.
Note: Online resource; title from PDF title page (EBSCO, viewed May 4, 2016). - Access Rights:
- Legal Deposit; Only available on premises controlled by the deposit library and to one user at any one time; The Legal Deposit Libraries (Non-Print Works) Regulations (UK).
- Access Usage:
- Restricted: Printing from this resource is governed by The Legal Deposit Libraries (Non-Print Works) Regulations (UK) and UK copyright law currently in force.
- View Content:
- Available online (eLD content is only available in our Reading Rooms) ↗
- Physical Locations:
- British Library HMNTS - ELD.DS.401256
- Ingest File:
- 02_443.xml