1
//-----------------------------------------------------------------------------
2
// simple bool array, boolean values set as individual bits in int array.
3
//-----------------------------------------------------------------------------
16
boolarray_t(const boolarray_t&);
18
boolarray_t() : ba(NULL), _size(0), _numbits(0) {}
19
boolarray_t(unsigned int numbits) : ba(NULL), _size(0), _numbits(0) { resize(numbits); }
20
~boolarray_t() { if (ba) delete[] ba; ba = NULL; }
21
boolarray_t& operator=(const boolarray_t& ba2)
23
if (ba2._size != _size) {
26
_numbits = ba2._numbits;
27
ba = new unsigned int[_size];
29
memcpy(ba, ba2.ba, _size*sizeof(unsigned int));
32
void resize(unsigned int numbits)
35
_size = ((numbits ? numbits : 1) + 31) >> 5;
37
ba = new unsigned int[_size];
38
memset(ba, 0, _size*sizeof(unsigned int));
40
bool operator[](unsigned int i)
42
const unsigned int b = 1 << (i & 31);
47
void operator()(unsigned int i, bool bl)
49
const unsigned int b = 1 << (i & 31);
57
boolarray_t& operator|=(const boolarray_t& ba2)
59
//assert(ba2._size == _size);
60
for (size_t i=0; i<_size; ++i)
64
boolarray_t& operator&=(const boolarray_t& ba2)
66
//assert(ba2._size == _size);
67
for (size_t i=0; i<_size; ++i)
71
size_t size() const { return _numbits; }
74
size_t _size, _numbits;
79
#endif // _BOOLARRAY_H