cpp / intermediate
Snippet
Streng typisierte aufgezählte Konstanten
Enum-Klassen (Scoped Enums) bieten eine bessere Typsicherheit als herkömmliche Enums, indem sie implizite Konvertierungen in Ganzzahlen verhindern. Die Angabe des zugrunde liegenden Typs wie 'unsigned char' optimiert den Speicherverbrauch.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>enum class SystemStatus : unsigned char {Idle = 0,Processing = 1,Error = 255};void checkStatus(SystemStatus status) {if (status == SystemStatus::Error) {std::cerr << "System failure detected!" << std::endl;}}
Erklärung
1
enum class SystemStatus : unsigned char
Definiert eine begrenzte Enumeration, die auf einen 8-Bit-Ganzzahltyp ohne Vorzeichen beschränkt ist.
2
SystemStatus::Error
Greift über den Bereichsauflösungsoperator auf die Konstante zu, was Namenskollisionen verhindert.