|
| bit_buffer (uint8_t *buffer) |
|
proxy | operator() (size_t index,) |
|
proxy | operator() (size_t index, size_t bit) |
|
range_proxy | operator() (size_t index, size_t bit_start, size_t bit_end) |
|
void | set_ (size_t index, size_t bit_start, size_t bit_end, T value) |
|
void | set_ (size_t index, size_t bit, T value) |
|
T | get_ (size_t index, size_t bit_start, size_t bit_end) |
|
T | get_ (size_t index, size_t bit) |
|
void | dump (size_t size) |
|
template<typename T, size_t BITS_PER_INDEX>
class flecsi::util::bit_buffer< T, BITS_PER_INDEX >
The bit_buffer type provides a bit-addressable buffer which can set and retrivie arbitrary bit collections which may potentially span multiple words of its underlying storage. Unlike std::bitset, it can address multiple bits efficiently, e.g. bits 0-3 of index 7 and its size does not have to be configured at compile-time.