Zusammenfassung
Die erweiterte Metaprogrammierung geht über das hinaus, was in den Grundlagen der C++-Templates behandelt werden konnte. In diesem Kapitel werden Techniken und Tricks vorgestellt, um Typen in Typlisten zu verwalten oder mit Type-Traits zusätzliche Typinformationen zur Kompilationszeit zu erhalten, die für das Generieren von Quellcode unabdingbar sind. Damit lassen sich die meisten Metafunktionen der Standard Template Library besser verstehen und anwenden. Die wichtigsten Metafunktionen der Standard Template Library in C++11 werden zusammenfassend vorgestellt.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Notes
- 1.
Siehe Abschn. 13.3 Overload resolution.
- 2.
Die Microsoft Compiler bis Visual C++ 2010 unterstützen nicht SFINAE bei Nichttyp-Templateparametern und liefern in diesem Beispiel einen Fehler. Die Compiler ab Visual C++ 2012 und GNU-C++ (Cp1252) arbeiten korrekt.
- 3.
Es kann auch ein Feld mit null Elementen angelegt werden, wenn die Bedingung nicht erfüllt ist, jedoch liefern einige Compiler dann eine Warnung statt einen Fehler zurück.
- 4.
Die Compilermeldungen stammen von Microsoft Compiler Visual C++ 2010
- 5.
Microsoft Compiler Visual C++ 2010.
Literatur
Mayer, Otto. 1988. Programmieren in COMMON LISP. Mannheim: Bibliographisches Institut & F.A. Brockhaus AG. ISBN 3-411-00638-2.
Alexandrescu, Andrei. 2003. Modernes C++ design. Heidelberg: REDLINE GMBH. ISBN 978-3-8266-1347-0.
Vandevoorde, David, und Nicolai M. Josuttis. 2010. C++ templates: The complete guide. Boston: Addision-Wesley. ISBN 0-201-73484-2.
Di. Gennaro, Davide. 2012. Advanced C++ metaprogramming. Leipzig: Amazon. ISBN 9-781460-966167.
American National Standards Institute. 1998. Programming languages — C++. New York: s.n.. ISO/IEC 14882:1998(E).
Standard ISO/IEC 1999. Programming languages — C. [pdf] Genf: s.n., 1999. INTERNATIONAL STANDARD ISO/IEC 9899.
cppreference.com. http://en.cppreference.com/w/cpp/types. Zugegriffen am 20.05.2015.
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
Copyright information
© 2016 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Lemke, J. (2016). Erweiterte Metaprogrammierung. In: C++-Metaprogrammierung . Xpert.press. Springer Vieweg, Berlin, Heidelberg. https://doi.org/10.1007/978-3-662-48550-7_4
Download citation
DOI: https://doi.org/10.1007/978-3-662-48550-7_4
Published:
Publisher Name: Springer Vieweg, Berlin, Heidelberg
Print ISBN: 978-3-662-48549-1
Online ISBN: 978-3-662-48550-7
eBook Packages: Computer Science and Engineering (German Language)