template <class T, int SignificantBits, int Shift = 0>

class NonIterableBitMask

Defined at line 390 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

An abstract bitmask, such as that emitted by a SIMD instruction.

Specifically, this type implements a simple bitset whose representation is

controlled by `SignificantBits` and `Shift`. `SignificantBits` is the number

of abstract bits in the bitset, while `Shift` is the log-base-two of the

width of an abstract bit in the representation.

This mask provides operations for any number of real bits set in an abstract

bit. To add iteration on top of that, implementation must guarantee no more

than the most significant real bit is set in a set abstract bit.

Public Members

T mask_

Public Methods

void NonIterableBitMask<T, SignificantBits, Shift> (T mask)

Defined at line 392 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

bool operator bool ()

Defined at line 394 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

uint32_t LowestBitSet ()

Returns the index of the lowest *abstract* bit set in `self`.

Defined at line 397 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

uint32_t HighestBitSet ()

Returns the index of the highest *abstract* bit set in `self`.

Defined at line 402 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

uint32_t TrailingZeros ()

Returns the number of trailing zero *abstract* bits.

Defined at line 407 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h

uint32_t LeadingZeros ()

Returns the number of leading zero *abstract* bits.

Defined at line 412 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h