Go to the documentation of this file.00001
00002
00003
00007
00008
00009 #ifndef CONTROL_WORD_LIB
00010 #define CONTROL_WORD_LIB 0
00011
00014 class ControlWord
00015 {
00016 protected:
00017 int cw;
00018 public:
00019 ControlWord() : cw(0) {}
00020 ControlWord(int i) : cw(i) {}
00021
00022
00023 ControlWord operator*(ControlWord i) const
00024 { return ControlWord(cw & i.cw); }
00025 void operator*=(ControlWord i) { cw &= i.cw; }
00026
00027
00028 ControlWord operator+(ControlWord i) const
00029 { return ControlWord(cw | i.cw); }
00030 void operator+=(ControlWord i) { cw |= i.cw; }
00031
00032
00033 ControlWord operator-(ControlWord i) const
00034 { return ControlWord(cw - (cw & i.cw)); }
00035 void operator-=(ControlWord i) { cw -= (cw & i.cw); }
00036
00037
00038 bool operator>=(ControlWord i) const { return (cw & i.cw) == i.cw; }
00039 bool operator<=(ControlWord i) const { return (cw & i.cw) == cw; }
00040
00041
00042 ControlWord operator^(ControlWord i) const
00043 { return ControlWord(cw ^ i.cw); }
00044 ControlWord operator~() const { return ControlWord(~cw); }
00045
00046
00047 int operator+() const { return cw; }
00048 int operator!() const { return cw==0; }
00049 FREE_CHECK(ControlWord)
00050 };
00051
00052
00053 #endif
00054
00056