0 Tage Serie
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.