Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds the following APIs, and refactors a few existing ones to use them as implementation details:
contains_any_in_range
- Checks if any bit in a range is set.contains_all_in_range
- Checks if all bits in a range are set.minimum
finds the smallest bit that has been set, if any are.maximum
finds the largest bit that has been set, if any are.is_full
checks if every bit in the bitset has been set.count_zeroes
is the corollary tocount_ones
, where it counts the bits that haven't been set in a range.remove_range
clears a range of set bits.set_range
now just chooses between insert_range and remove_range internally. Moves the branch out of the loop.