Die Ranges-Bibliothek stellt eine zweite Variante der Standard Template Library dar. Sie öffnet C++20 für ganz neue Ideen aus der funktionalen Welt.
Concepts in C++20 revolutionieren die Art und Weise, wie wir generischen Code verstehen und schreiben. Sie erfüllen eine ähnlich fundamentale Aufgabe wie Interfaces für die objektorientierte Programmierung.
Die Ranges-Bibliothek, eine zweite Variante der Standard Template Library, öffnet C++20 für ganz neue Ideen aus der funktionalen Welt.
Die letzten zwei Artikel dieser Serie stellten die verschiedenen Anwendungsbereiche von Concepts vor. Auf die Pflicht folgt in diesem Artikel die Kür: Die Definition eigener Concepts.
Concepts erlauben es, semantische Einschränkungen auf Template-Parametern auszudrücken. Bevor man in die Details eintaucht, gilt es, zuerst ein paar Schritte zurückzutreten und die Einsatzbereiche vorzustellen.
Mit Concepts, Ranges, Modulen und Coroutinen verändert C++20 die Art und Weise, wie man modernes C++ schreibt, ähnlich fundamental wie zuvor die Standards C++98 und C++11.
Greifen Sie auf ein Element außerhalb eines Containers der Standard Template Library zu, lauert undefiniertes Verhalten. Das macht verlässliche Aussagen über das Programm unmöglich.
Assoziative Container in C++ unterscheiden sich hinsichtlich ihrer Performance deutlich. Was ist die gebräuchlichste Wahl, und wann greift man besser zu Alternativen?
C++ bietet fünf sequenzielle Container an. Aus Perspektive der Performance betrachtet, reduziert sich diese Auswahl auf die zwei Container std::array und std::vector.
C++ bietet viele Möglichkeiten, einen Algorithmus an einen Datentyp anzupassen. Jede Variante basiert auf dem Überladen von Operatoren und Funktionen oder auf der Template-Spezialisierung und hat spezifische Vor- und Nachteile.
Ein Interface ist ein Vertrag zwischen einem Benutzer und einem Implementierer. Die C++ Core Guidelines enthalten wertvolle Regeln, die solche Schnittstellen betreffen.
Vor zehn Jahren erblickte diese Artikelreihe unter dem Titel "Modernes C++ in der Praxis" das Licht der Welt. Ein guter Grund der Frage nachzugehen, welche Wege die Sprache im letzten Jahrzehnt genommen hat.
Die Zukunft von C++ liegt in Templates, zu denen die C++ Core Guidelines viele Regeln aufstellen. Einen wichtigen Aspekt von Templates stellen die Concepts dar.
Die Keywords const, constexpr und das Konzept der Unveränderlichkeit umreißen fundamentale Paradigmen für den guten Softwareentwurf in C++.
Fehlerbehandlung bildet einen integralen Bestandteil jeder guten Softwarearchitektur. Wer sie beim Design nicht von Anfang an berücksichtigt, riskiert, dass es im Fehlerfall vernehmlich kracht.














