home *** CD-ROM | disk | FTP | other *** search
- template<unsigned long N>
- class bits
- {
- // Friends:
- // Global I/O funtions
- friend ostream& operator<<(ostream&, const bits<N>&);
- friend istream& operator>>(istream&, bits<N>&);
-
- // Global bitwise operators
- friend bits<N> operator&(const bits<N>&, const bits<N>&);
- friend bits<N> operator|(const bits<N>&, const bits<N>&);
- friend bits<N> operator^(const bits<N>&, const bits<N>&);
-
- public:
- // Constructors
- bits();
- bits(unsigned long n);
- bits(const bits<N>& b);
- bits(const string& s);
-
- // Conversions
- unsigned short to_ushort() const;
- unsigned long to_ulong() const;
- string to_string() const;
-
- // Assignment
- bits<N>& operator=(const bits<N>& rhs);
-
- // Equality
- int operator==(const bits<N>& rhs) const;
- int operator!=(const bits<N>& rhs) const;
-
- // Basic bit operations
- bits<N>& set(size_t pos, int val = 1);
- bits<N>& set();
- bits<N>& reset(size_t pos);
- bits<N>& reset();
- bits<N>& toggle(size_t pos);
- bits<N>& toggle();
- bits<N> operator~() const;
- int test(size_t n) const;
- int any() const;
- int none() const;
-
- // Bit-wise operators
- bits<N>& operator&=(const bits<N>& rhs);
- bits<N>& operator|=(const bits<N>& rhs);
- bits<N>& operator^=(const bits<N>& rhs);
-
- // Shift operators
- bits<N>& operator<<=(size_t n);
- bits<N>& operator>>=(size_t n);
- bits<N> operator<<(size_t n) const;
- bits<N> operator>>(size_t n) const;
-
- size_t count() const;
-
- size_t length() const;
- };
-
- // End of File
-
-