C++-Programmierung: Generischer Code mit Type Traits

Generischer Code ist oft nicht einfach umzusetzen, denn unterschiedliche Typeigenschaften benötigen verschiedene Implementierungen. Hier helfen Type Traits.

Lesezeit: 7 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen 8 Beiträge
Von
  • Detlef Wilkening
Inhaltsverzeichnis

Wenn Entwickler in C++ über Traits reden, beziehen sie sich häufig auf die Type Traits der Standardbibliothek, die die grundlegenden Eigenschaften von Typen beschreiben, und ihre Anwendung bei der bedingten Kompilierung wie etwa std::enable_if und Constexpr-If. Auch wenn dies wichtige Themen in C++ sind, so verdecken diese Diskussionen oft, dass es noch andere Anwendungen von Traits gibt. Sie können helfen, alltägliche Probleme beim Programmieren zu lösen.

Mehr zur Programmiersprache C++

Ein Type Trait beschreibt die Eigenschaften eines Typs. Das ist wichtig bei generischem Code, der von Typeigenschaften und nicht von einem konkreten Typ abhängig ist. Die folgenden Beispiele zeigen die Entwicklung von einfachem generischen Code zu generischem Code mit Eigenschaftsnutzung.

iX-tract
  • Type Traits sind eine Metaprogrammiertechnik, mit der sich Typeigenschaften zur Kompilierzeit abfragen lassen.
  • Sie erlauben generischen Code auf Basis dieser Typeigenschaften.
  • Traits-Klassen ermöglichen modularen erweiterbaren Code, da sie typspezifischen Code sammeln und vom Rest isolieren.

Den Anfang macht ein einfaches Beispiel für eine generische Funktion print ohne Sonderbehandlung. Diese Funktion gibt jedes Argument mit einem folgenden Leerzeichen und einem Ausgabepräfix aus (hier Ko:), wodurch die Ausgabe die Wahl der Funktion anzeigt. Das Präfix Ko: steht für Kopie, denn in dieser Variante der Funktion wird das Argument per Kopie übergeben.

Immer mehr Wissen. Das digitale Abo für IT und Technik.

  • Zugriff auf alle Inhalte von heise+
  • exklusive Tests, Ratgeber & Hintergründe: unabhängig, kritisch fundiert
  • c't, iX, Technology Review, Mac & i, Make, c't Fotografie direkt im Browser lesen
  • einmal anmelden – auf allen Geräten lesen - monatlich kündbar
  • erster Monat gratis, danach monatlich 9,95 €
  • Wöchentlicher Newsletter mit persönlichen Leseempfehlungen des Chefredakteurs
GRATIS-Monat beginnen Jetzt GRATIS-Monat beginnen Mehr Informationen zu heise+