zurück zum Artikel

C++-Tricks: Das fehlende Konstrukt always_false

Andreas Fertig

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

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


URL dieses Artikels:
https://www.heise.de/-4966818

Links in diesem Artikel:
[1] https://www.heise.de/ratgeber/Paketmanager-Mit-Conan-C-und-C-Bibliotheken-paketieren-6233167.html
[2] https://www.heise.de/ratgeber/Clean-Code-mit-C-20-Effizientere-Vergleiche-mit-dem-Spaceship-Operator-5058957.html
[3] https://www.heise.de/ratgeber/Clean-Code-mit-C-20-Code-lesbarer-gestalten-5078955.html
[4] https://www.heise.de/ratgeber/Clean-Code-mit-C-20-Features-zur-Codeoptimierung-6044420.html
[5] https://www.heise.de/hintergrund/Revolution-Das-ist-neu-in-C-20-4476093.html
[6] https://www.heise.de/hintergrund/Modernes-Programmieren-mit-C-20-4778179.html
[7] https://www.heise.de/ratgeber/C-Compiler-im-Ueberblick-4223827.html
[8] https://www.heise.de/ratgeber/Singletons-sauber-in-C-programmieren-4451707.html
[9] https://www.heise.de/hintergrund/C-So-wird-der-Code-lesbar-und-einfacher-zu-warten-4510704.html
[10] https://www.heise.de/ratgeber/Durch-C-Anwendungen-verursachte-Speicherlecks-aufspueren-4661896.html
[11] https://www.heise.de/ratgeber/Entfaltet-Weniger-Code-in-C-dank-Fold-Expressions-4684464.html
[12] https://www.heise.de/ratgeber/C-Tricks-Micro-Benchmarking-mit-der-Google-Benchmark-Library-4702513.html
[13] https://www.heise.de/ratgeber/C-Tricks-Scoped-Enums-fuer-robusteren-Code-4796014.html
[14] https://www.heise.de/ratgeber/C-Bibliothek-Magic-Enum-Enumerationen-einfacher-nutzen-4847471.html
[15] https://www.heise.de/ratgeber/C-Tricks-auto-als-Non-Type-Templateparameter-4875223.html
[16] https://www.heise.de/ratgeber/C-Programmierung-Generischer-Code-mit-Type-Traits-4915471.html
[17] https://www.heise.de/ratgeber/C-Tricks-Idiome-als-Programmier-Problemloeser-4942171.html
[18] https://www.heise.de/ratgeber/C-Tricks-Das-fehlende-Konstrukt-always-false-4966818.html
[19] https://www.heise.de/ratgeber/C-Programmierung-Effizienteres-Logging-mit-Expression-Templates-5991478.html