QxOrm 1.4.9
C++ Object Relational Mapping library
Loading...
Searching...
No Matches
qx::memory::bool_array Class Reference

#include <bool_array.h>

Classes

class  _Element
 

Public Member Functions

 bool_array ()
 
 bool_array (unsigned long __size)
 
 ~bool_array ()
 
bool create (unsigned long __size)
 
void initialize (bool ___value)
 
_Element operator[] (unsigned long __idx)
 
bool at (unsigned long __idx) const
 
void reset (unsigned long __idx)
 
void set (unsigned long __idx)
 
unsigned long size () const
 
unsigned long count () const
 
unsigned long count (unsigned long __beg, unsigned long __end) const
 
void flip ()
 

Private Attributes

BYTE_M_byte_ptr
 
unsigned long _M_length
 

Static Private Attributes

static BYTE _S_bit_count [256]
 

Detailed Description

Class to represent a packed boolean array.

This was first written in April 1995, before I knew of any existing implementation of this kind of classes. Of course, the C++ Standard Template Library now demands an implementation of packed boolean array as ‘vector<bool>’, but the code here should still be useful for the following three reasons: (1) STL support of MSVC 6 did not implement this specialization (nor did it have a ‘bit_vector’); (2) I incorporated some useful member functions from the STL bitset into this ‘bool_array’, including ‘reset’, ‘set’, ‘flip’, and ‘count’; (3) In my tests under MSVC 6 and GCC 2.95.3/3.2.3 my code is really FASTER than vector<bool> or the normal boolean array.

Definition at line 79 of file bool_array.h.

Constructor & Destructor Documentation

◆ bool_array() [1/2]

qx::memory::bool_array::bool_array ( )
inline

Definition at line 95 of file bool_array.h.

◆ bool_array() [2/2]

qx::memory::bool_array::bool_array ( unsigned long __size)
inlineexplicit

Constructs the packed boolean array with a specific size.

Parameters
__sizesize of the array
Exceptions
std::out_of_rangeif __size equals 0
std::bad_allocif memory is insufficient

Definition at line 167 of file bool_array.h.

◆ ~bool_array()

qx::memory::bool_array::~bool_array ( )
inline

Definition at line 97 of file bool_array.h.

Member Function Documentation

◆ at()

bool qx::memory::bool_array::at ( unsigned long __idx) const
inline

Reads the boolean value of an array element via an index.

Parameters
__idxindex of the array element to access
Returns
the boolean value of the accessed array element
Exceptions
std::out_of_rangewhen the index is too big

Definition at line 196 of file bool_array.h.

◆ count() [1/2]

unsigned long qx::memory::bool_array::count ( ) const

◆ count() [2/2]

unsigned long qx::memory::bool_array::count ( unsigned long __beg,
unsigned long __end ) const

◆ create()

bool qx::memory::bool_array::create ( unsigned long __size)

◆ flip()

void qx::memory::bool_array::flip ( )

◆ initialize()

void qx::memory::bool_array::initialize ( bool ___value)

◆ operator[]()

bool_array::_Element qx::memory::bool_array::operator[] ( unsigned long __idx)
inline

Creates a reference to an array element.

Parameters
__idxindex of the array element to access

Definition at line 182 of file bool_array.h.

◆ reset()

void qx::memory::bool_array::reset ( unsigned long __idx)
inline

Resets an array element to false via an index.

Parameters
__idxindex of the array element to access
Exceptions
std::out_of_rangewhen the index is too big

Definition at line 212 of file bool_array.h.

◆ set()

void qx::memory::bool_array::set ( unsigned long __idx)
inline

Sets an array element to true via an index.

Parameters
__idxindex of the array element to access
Exceptions
std::out_of_rangewhen the index is too big

Definition at line 228 of file bool_array.h.

◆ size()

unsigned long qx::memory::bool_array::size ( ) const
inline

Definition at line 108 of file bool_array.h.

Member Data Documentation

◆ _M_byte_ptr

BYTE* qx::memory::bool_array::_M_byte_ptr
private

Definition at line 114 of file bool_array.h.

◆ _M_length

unsigned long qx::memory::bool_array::_M_length
private

Definition at line 115 of file bool_array.h.

◆ _S_bit_count

BYTE qx::memory::bool_array::_S_bit_count[256]
staticprivate

Definition at line 116 of file bool_array.h.


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