My Project
bitXmask.h
Go to the documentation of this file.
1 /* bitXmask.h
2  */
3 #ifndef OSL_BITXMASK_H
4 #define OSL_BITXMASK_H
5 
6 #include "osl/basic_type.h"
7 #include <iosfwd>
8 
9 namespace osl
10 {
11  namespace container
12  {
16  class BitXmask
17  {
18  int mask;
19  public:
20  BitXmask() : mask(0) {}
21  void clearAll() { mask = 0; }
22  void set(int x) { mask |= (1 << x); }
23  void clear(int x) { mask &= ~(1 << x); }
24 
25  void set(Square position) { set(position.x()); }
26  void clear(Square position) { clear(position.x()); }
27 
28  bool isSet(int x) const { return mask & (1<<x); }
29 
30  int intValue() const { return mask; }
31  };
32 
33  inline bool operator==(BitXmask l, BitXmask r)
34  {
35  return l.intValue() == r.intValue();
36  }
37  inline bool operator!=(BitXmask l, BitXmask r)
38  {
39  return ! (l == r);
40  }
41  inline bool operator<(BitXmask l, BitXmask r)
42  {
43  return l < r;
44  }
45 
46  std::ostream& operator<<(std::ostream&,const BitXmask);
47  } // namespace container
48  using container::BitXmask;
49 } // namespace osl
50 
51 #endif /* OSL_BITXMASK_H */
52 // ;;; Local Variables:
53 // ;;; mode:c++
54 // ;;; c-basic-offset:2
55 // ;;; coding:utf-8
56 // ;;; End:
osl::Square
Definition: basic_type.h:532
osl::container::BitXmask::intValue
int intValue() const
Definition: bitXmask.h:30
basic_type.h
osl::container::BitXmask
X座標のbitset.
Definition: bitXmask.h:17
osl::container::operator==
bool operator==(BitXmask l, BitXmask r)
Definition: bitXmask.h:33
osl::container::BitXmask::BitXmask
BitXmask()
Definition: bitXmask.h:20
osl::container::BitXmask::clearAll
void clearAll()
Definition: bitXmask.h:21
osl::container::BitXmask::set
void set(Square position)
Definition: bitXmask.h:25
osl::container::BitXmask::isSet
bool isSet(int x) const
Definition: bitXmask.h:28
osl::container::BitXmask::set
void set(int x)
Definition: bitXmask.h:22
osl::Square::x
int x() const
将棋としてのX座標を返す.
Definition: basic_type.h:563
osl::container::BitXmask::clear
void clear(int x)
Definition: bitXmask.h:23
osl::container::operator<<
std::ostream & operator<<(std::ostream &, const BitXmask)
Definition: bitXmask.cc:6
osl::container::operator<
bool operator<(BitXmask l, BitXmask r)
Definition: bitXmask.h:41
osl::container::BitXmask::clear
void clear(Square position)
Definition: bitXmask.h:26
osl::container::BitXmask::mask
int mask
Definition: bitXmask.h:18
osl::container::operator!=
bool operator!=(BitXmask l, BitXmask r)
Definition: bitXmask.h:37
osl
Definition: additionalEffect.h:6