home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The World of Computer Software
/
World_Of_Computer_Software-02-385-Vol-1of3.iso
/
n
/
newmat06.zip
/
CONTROLW.H
< prev
next >
Wrap
C/C++ Source or Header
|
1992-06-07
|
2KB
|
46 lines
//$$ controlw.h Control word class
#ifndef CONTROL_WORD_LIB
#define CONTROL_WORD_LIB 0
// for organising an int as a series of bits which indicate whether an
// option is on or off.
class ControlWord
{
protected:
int cw; // the control word
public:
ControlWord() : cw(0) {} // do nothing
ControlWord(int i) : cw(i) {} // load an integer
// select specific bits (for testing at least one set)
ControlWord operator*(const ControlWord& i) const { return cw & i.cw; }
void operator*=(const ControlWord& i) { cw &= i.cw; }
// set bits
ControlWord operator+(const ControlWord& i) const { return cw | i.cw; }
void operator+=(const ControlWord& i) { cw |= i.cw; }
// reset bits
ControlWord operator-(const ControlWord& i) const
{ return cw - (cw & i.cw); }
void operator-=(const ControlWord& i) { cw -= (cw & i.cw); }
// check if all of selected bits set or reset
Boolean operator>=(const ControlWord& i) const { return (cw & i.cw) == i.cw; }
Boolean operator<=(const ControlWord& i) const { return (cw & i.cw) == cw; }
// flip selected bits
ControlWord operator^(const ControlWord& i) const { return cw ^ i.cw; }
ControlWord operator~() const { return ~cw; }
// convert to integer
int operator+() const { return cw; }
int operator!() const { return cw==0; }
FREE_CHECK(ControlWord)
};
#endif