Templates & generische Programmierung
Schreibe wirklich generische, wiederverwendbare Abstraktionen ohne Overhead — mit Templates, Concepts und Programmierung zur Kompilierzeit.
Template-Grundlagen
Funktions-Templates & Typdeduktion
Lerne, wie du Funktionen schreibst, die mit jedem beliebigen Typ funktionieren. Verstehe die Template-Argument-Deduktion, Nicht-Typ-Parameter und warum Templates in Header-Dateien stehen müssen.
Klassen-Templates & CTAD
Baue generische Datenstrukturen mit Klassen-Templates. Verstehe Member-Definitionen, Standardargumente und wie dir CTAD aus C++17 erlaubt, Template-Argumente wegzulassen.
Fortgeschrittene Templates
Template-Spezialisierung & Tag Dispatch
Meistere vollständige und partielle Spezialisierung, lerne, wann Überladung die bessere Wahl ist, und entdecke Tag Dispatch sowie if constexpr als Alternativen für Verzweigungen zur Kompilierzeit.
Variadische Templates & Fold-Ausdrücke
Verarbeite beliebig viele Template-Argumente mit Parameter-Packs. Meistere Fold-Ausdrücke für elegante Pack-Verarbeitung ganz ohne Rekursion.
SFINAE, Type Traits & enable_if
Verstehe das Prinzip "Substitution Failure Is Not An Error", nutze Type Traits zur Introspektion während der Kompilierung und schränke Templates mit enable_if ein.
Moderne generische Programmierung
C++20-Concepts & Constraints
Formuliere mit Concepts präzise Anforderungen an Template-Argumente. Schreibe saubereren generischen Code mit requires-Klauseln, abgekürzten Funktions-Templates und den Concepts der Standardbibliothek.
constexpr, consteval & Programmierung zur Kompilierzeit
Verlagere Berechnungen mit constexpr, consteval und constinit von der Laufzeit in die Kompilierzeit. Baue Lookup-Tabellen, prüfe Konfigurationen und nutze constexpr-Container.
Muster der Template-Metaprogrammierung
Meistere fortgeschrittene Template-Muster: CRTP für statische Polymorphie, Policy-based Design für flexible Komposition, Type Erasure für generische Typen zur Laufzeit — und lerne, wann Templates und wann virtuelle Aufrufe die richtige Wahl sind.