| #include <bitset> | |
| enum Flags { A = 1, B = 2, C = 3, D = 5, | |
| E = 8, F = 13, G = 21, H, | |
| I, J, K, L, M, N, O }; | |
| void apply_known_mask(std::bitset<64> &bits) { | |
| const Flags important_bits[] = { B, D, E, H, K, M, L, O }; | |
| std::remove_reference<decltype(bits)>::type mask{}; | |
| for (const auto& bit : important_bits) { | |
| mask.set(bit); | |
| } | |
| bits &= mask; | |
| } |