template <class T, int SignificantBits, int Shift = 0, bool NullifyBitsOnIteration = false>
class BitMask
Defined at line 438 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
Mask that can be iterable
For example, when `SignificantBits` is 16 and `Shift` is zero, this is just
an ordinary 16-bit bitset occupying the low 16 bits of `mask`. When
`SignificantBits` is 8 and `Shift` is 3, abstract bits are represented as
the bytes `0x00` and `0x80`, and it occupies all 64 bits of the bitmask.
If NullifyBitsOnIteration is true (only allowed for Shift == 3),
non zero abstract bit is allowed to have additional bits
(e.g., `0xff`, `0x83` and `0x9c` are ok, but `0x6f` is not).
For example:
for (int i : BitMask
<uint32
_t, 16>(0b101)) -> yields 0, 2
for (int i : BitMask
<uint64
_t, 8, 3>(0x0000000080800000)) -> yields 2, 3
Public Methods
void BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> (T mask)
Defined at line 445 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> & operator++ ()
Defined at line 455 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
uint32_t operator* ()
Defined at line 463 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> begin ()
Defined at line 465 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> end ()
Defined at line 466 of file ../../third_party/abseil-cpp/absl/container/internal/raw_hash_set.h
Friends
template <class T, int SignificantBits, int Shift = 0, bool NullifyBitsOnIteration = false>
bool BitMask (const BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> & a, const BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> & b)
template <class Tint SignificantBitsint Shift = 0bool NullifyBitsOnIteration = false>
bool BitMask (const BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> & aconst BitMask<T, SignificantBits, Shift, NullifyBitsOnIteration> & b)