| 111 | |
| 112 | template <typename ARRAY, typename = std::enable_if_t<std::is_integral_v<typename ARRAY::value_type>>> |
| 113 | int ToInt(const ARRAY& a) |
| 114 | { |
| 115 | assert(Reduce(a) <= 32); |
| 116 | |
| 117 | int pattern = 0; |
| 118 | for (int i = 0; i < Size(a); i++) |
| 119 | pattern = (pattern << a[i]) | ~(0xffffffff << a[i]) * (~i & 1); |
| 120 | return pattern; |
| 121 | } |
| 122 | |
| 123 | template <typename T = int, typename = std::enable_if_t<std::is_integral_v<T>>> |
| 124 | T ToInt(const BitArray& bits, int pos = 0, int count = 8 * sizeof(T)) |