Interface Documentation
Version: invalid
Classes | Public Member Functions | Static Public Attributes | List of all members
flecsi::util::bit_buffer< T, BITS_PER_INDEX > Class Template Reference

#include <bit_buffer.hh>

Classes

class  proxy
 
class  range_proxy
 

Public Member Functions

 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)
 
get_ (size_t index, size_t bit_start, size_t bit_end)
 
get_ (size_t index, size_t bit)
 
void dump (size_t size)
 

Static Public Attributes

static constexpr size_t word_bits = sizeof(T) * 8
 

Detailed Description

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.


The documentation for this class was generated from the following file: