| 115 | struct CharSet { |
| 116 | uint64_t bits[4] = {}; |
| 117 | void set(uint8_t b) { bits[b >> 6] |= 1ULL << (b & 63); } |
| 118 | bool test(uint8_t b) const { return (bits[b >> 6] >> (b & 63)) & 1; } |
| 119 | void negate() { for (auto& w : bits) w = ~w; } |
| 120 | void merge(const CharSet& o) { for (int i = 0; i < 4; i++) bits[i] |= o.bits[i]; } |
no outgoing calls
no test coverage detected