cpp / intermediate
Snippet
Streng typisierte Aufzählungen mit Scope
Die Verwendung von 'enum class' erstellt Aufzählungen mit Scope, die nicht implizit in Integer umgewandelt werden. Dies verhindert Typfehler, bei denen nicht zusammenhängende Enum-Werte verglichen oder numerischen Variablen zugewiesen werden.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>enum class NetworkStatus : uint8_t {Disconnected,Connecting,Connected};void checkStatus(NetworkStatus s) {if (s == NetworkStatus::Connected) {std::cout << "Online" << std::endl;}}
Erklärung
1
enum class NetworkStatus : uint8_t {
Deklariert ein Scoped-Enum und setzt explizit den zugrunde liegenden Speichertyp auf einen 8-Bit-Integer ohne Vorzeichen.
2
if (s == NetworkStatus::Connected)
Erfordert den expliziten Scope-Operator, was den Code lesbarer und sicherer macht.