| 137 | |
| 138 | template <typename T = int, typename = std::enable_if_t<std::is_integral_v<T>>> |
| 139 | std::vector<T> ToInts(const BitArray& bits, int wordSize, int totalWords, int offset = 0) |
| 140 | { |
| 141 | assert(totalWords >= bits.size() / wordSize); |
| 142 | assert(wordSize <= 8 * (int)sizeof(T)); |
| 143 | |
| 144 | std::vector<T> res(totalWords, 0); |
| 145 | for (int i = offset; i < bits.size(); i += wordSize) |
| 146 | res[(i - offset) / wordSize] = ToInt(bits, i, wordSize); |
| 147 | |
| 148 | return res; |
| 149 | } |
| 150 | |
| 151 | class BitArrayView |
| 152 | { |
no test coverage detected