controlw.h

来自「科学和工程计算中使用统计功能开发工具包.」· C头文件 代码 · 共 46 行

H
46
字号
//$$ 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

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?