cpp / expert
Snippet
Bitmasken-gesteuerte Kontrolllogik
Verwendung von bitweisen Operatoren und Enum-Classes zur effizienten Verwaltung komplexer Kontrollfluss-Zustände. Dieser Ansatz packt mehrere boolesche Flags in ein einzelnes Byte, was Speicher und Branch-Prediction optimiert.
snippet.cpp
cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <cstdint>enum class Permissions : uint8_t {Read = 1 << 0, // 0001Write = 1 << 1, // 0010Exec = 1 << 2 // 0100};inline bool has_permission(uint8_t mask, Permissions p) {return (mask & static_cast<uint8_t>(p)) != 0;}void process_request(uint8_t mask) {if (has_permission(mask, Permissions::Read)) {// Execute read logic}if (has_permission(mask, Permissions::Write)) {// Execute write logic}}
Erklärung
1
1 << 0
Verwendet den Bit-Shift-Operator, um eindeutige Zweierpotenz-Werte für jedes Flag zu definieren.
2
mask & static_cast<uint8_t>(p)
Führt ein bitweises UND aus, um zu prüfen, ob ein bestimmtes Bit in der Flag-Maske gesetzt ist.