|
| | 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.