|
| BitSpan ()=default |
|
| ~BitSpan ()=default |
|
| BitSpan (const BitSpan &other) |
|
| BitSpan (BitSpan &&other) |
|
BitSpan & | operator= (const BitSpan &other) |
|
BitSpan & | operator= (BitSpan &&other) |
|
template<typename BitVectorType > |
| BitSpan (BitVectorType &bit_vector) |
| Construct a BitSpan from a BitVector. More...
|
|
template<typename BitVectorType > |
BitSpan & | operator= (BitVectorType &bit_vector) |
| Assignment from BitVector. More...
|
|
| BitSpan (std::byte *buffer, std::size_t bit_size, bool aligned=false) |
| Construct a BitSpan from std::byte buffer of length bit_size . More...
|
|
template<typename T > |
| BitSpan (T *buffer, std::size_t bit_size, bool aligned=false) |
| Construct a BitSpan from a buffer of length bit_size . More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | As () const |
| Converts this BitSpan to a BitVector. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | Subset (const std::size_t from, const std::size_t to) const |
| Returns a new BitVector containing the bits of this BitSpan between positions from and to . More...
|
|
bool | Empty () const noexcept |
| Check if BitSpan is empty. More...
|
|
void | Invert () |
| In-place bit-wise invert. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator~ () const |
| Return a BitVector containing bit-inverted values of this BitSpan. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
bool | operator== (const BitVectorType &other) const |
| Compare the content of a BitVectorType for equality. More...
|
|
bool | operator== (const BitSpan &other) const |
| Compare the content with another BitSpan for equality. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator& (const BitVectorType &other) const |
| Perform AND operation on every bit of BitSpan and BitVector. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator& (const BitSpan &other) const |
| Perform AND operation on every bit of both BitSpans. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator| (const BitVectorType &other) const |
| Perform OR operation on every bit of BitSpan and BitVector. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator| (const BitSpan &other) const |
| Perform OR operation on every bit of both BitSpans. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator^ (const BitVectorType &other) const |
| Perform XOR operation on every bit of BitSpan and BitVector. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitVectorType | operator^ (const BitSpan &other) const |
| Perform XOR operation on every bit of both BitSpans. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitSpan & | operator&= (const BitVectorType &other) |
| Perform AND-assign operation on every bit of BitSpan and BitVector. More...
|
|
BitSpan & | operator&= (const BitSpan &other) |
| Perform AND-assign operation on every bit of both BitSpans. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitSpan & | operator|= (const BitVectorType &other) |
| Perform OR-assign operation on every bit of BitSpan and BitVector. More...
|
|
BitSpan & | operator|= (const BitSpan &other) |
| Perform OR-assign operation on every bit of both BitSpans. More...
|
|
template<typename BitVectorType = AlignedBitVector> |
BitSpan & | operator^= (const BitVectorType &other) |
| Perform XOR-assign operation on every bit of BitSpan and BitVector. More...
|
|
BitSpan & | operator^= (const BitSpan &other) |
| Perform XOR-assign operation on every bit of both BitSpans. More...
|
|
bool | Get (const std::size_t position) const |
| Get bit at given position. More...
|
|
bool | operator[] (const std::size_t position) const |
| Get bit at given position in the BitSpan. More...
|
|
void | Set (const bool value) |
| Sets all bits to value . More...
|
|
void | Set (const bool value, const std::size_t position) |
| Sets bit at postion to value . More...
|
|
const std::byte * | GetData () const noexcept |
| Get const reference to content of BitSpan. More...
|
|
std::byte * | GetMutableData () noexcept |
| Get reference to content of BitSpan. More...
|
|
std::size_t | GetSize () const noexcept |
| Get size of BitSpan. More...
|
|
std::string | AsString () const noexcept |
| Returns a string representation of this BitVector. More...
|
|
bool | IsAligned () const noexcept |
| Returns true if Allocator is aligned allocator. More...
|
|
template<typename BitVectorType > |
void | Copy (const std::size_t dest_from, const std::size_t dest_to, BitVectorType &other) |
| copies the first (dest_to - dest_from) bits from other to the bits [dest_from, dest_to) in this. More...
|
|
template<typename BitVectorType > |
void | Copy (const std::size_t dest_from, BitVectorType &other) |
| copies other to this[dest_from...dest_from+GetSize()]. More...
|
|
void | Copy (const std::size_t dest_from, const std::size_t dest_to, BitSpan &other) |
| copies the first (dest_to - dest_from) bits from other to the bits [dest_from, dest_to) in this. More...
|
|
void | Copy (const std::size_t dest_from, const std::size_t dest_to, BitSpan &&other) |
| copies the first (dest_to - dest_from) bits from other to the bits [dest_from, dest_to) in this. More...
|
|
void | Copy (const std::size_t dest_from, BitSpan &other) |
| copies other to this[dest_from...dest_from+GetSize()]. More...
|
|
void | Copy (const std::size_t dest_from, BitSpan &&other) |
| copies other to this[dest_from...dest_from+GetSize()]. More...
|
|
Non-owning non-resizeable BitVector.
Provides a read-write BitVector API over a raw buffer, e.g. std::byte *. The underlying buffer is not owned by the BitSpan, in contrast to BitVector. Assumes that the buffer starts at the leftmost bit of the underlying buffer.