C++-Tricks: Das fehlende Konstrukt always_false

Reichen die Bestandteile einer Sprache nicht aus, um Code­probleme zu lösen, greifen Entwickler auf Hilfskonstrukte zurück. Wir stellen always_false vor.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 9 Min.
Von
  • Andreas Fertig
Inhaltsverzeichnis
Mehr zur Programmiersprache C++

Das Hilfskonstrukt always_false erstellt einen typabhängigen Ausdruck, wie er bei Templates benötigt wird. Wie der Name sagt, liefert always_false immer false zurück. Ein solches Konstrukt ist in einigen Situationen bei einem static_assert erforderlich. Dieser Artikel zeigt verschiedene Situationen und mögliche Implementierungen von always_false.

Templates sind ein mächtiges Werkzeug in C++. Aber nicht selten verursachen sie lange, schwer verständliche Fehlermeldungen des Compilers. Ein solcher Fall tritt in dem folgenden Listing auf.

Listing 1: Primäres Klassentemplate Hash mit Spezialisierungen für Cat und Dog