My Project
pieceMask64.h
Go to the documentation of this file.
1 /* pieceMask64.h
2  */
3 #ifndef PIECEMASK64_H
4 #define PIECEMASK64_H
5 #include "osl/bits/mask.h"
6 
7 namespace osl
8 {
9  namespace container
10  {
12  {
13  protected:
15  public:
16  static int numToIndex(int) { return 0; }
17  static int numToOffset(int num) { return num; }
19  explicit PieceMask64(misc::Mask64 const& m) : mask(m) {}
20  protected:
21  misc::Mask64& mutableMask(int) { return mask; }
22  public:
23  const misc::Mask64& getMask(int) const { return mask; }
24  void resetAll()
25  {
27  }
28  void setAll()
29  {
30  mask=misc::Mask64::makeDirect(0xffffffffffuLL);
31  }
33  {
34  mask ^= o.mask;
35  return *this;
36  }
38  {
39  mask &= o.mask;
40  return *this;
41  }
43  {
44  mask |= o.mask;
45  return *this;
46  }
48  {
49  mask -= o.mask;
50  return *this;
51  }
53  {
54  mask += o.mask;
55  return *this;
56  }
57  bool none() const { return mask.none(); }
58  bool hasMultipleBit() const
59  {
60  if (none())
61  return false;
62  return mask.hasMultipleBit();
63  }
68  int countBit2() const
69  {
70  if (none())
71  return 0;
72  return mask.countBit2();
73  }
74  int
75 #ifdef __GNUC__
76  __attribute__ ((pure))
77 #endif
78  countBit() const
79  {
80  return mask.countBit();
81  }
82  int takeOneBit()
83  {
84  assert(!none());
85  return mask.takeOneBit();
86  }
87  };
88 } // namespace container
89  using container::PieceMask64;
90 } // namespace osl
91 
92 
93 #endif /* PIECEMASK64_H */
94 // ;;; Local Variables:
95 // ;;; mode:c++
96 // ;;; c-basic-offset:2
97 // ;;; End:
osl::container::PieceMask64::countBit
int countBit() const
Definition: pieceMask64.h:78
osl::container::PieceMask64::none
bool none() const
Definition: pieceMask64.h:57
osl::container::PieceMask64::operator|=
PieceMask64 & operator|=(const PieceMask64 &o)
Definition: pieceMask64.h:42
osl::container::PieceMask64::operator-=
PieceMask64 & operator-=(const PieceMask64 &o)
Definition: pieceMask64.h:47
osl::container::PieceMask64
Definition: pieceMask64.h:12
osl::container::PieceMask64::PieceMask64
PieceMask64(misc::Mask64 const &m)
Definition: pieceMask64.h:19
osl::container::PieceMask64::numToOffset
static int numToOffset(int num)
Definition: pieceMask64.h:17
osl::container::PieceMask64::takeOneBit
int takeOneBit()
Definition: pieceMask64.h:82
osl::misc::GeneralMask::makeDirect
static const GeneralMask makeDirect(Integer value)
Definition: mask.h:219
osl::container::PieceMask64::PieceMask64
PieceMask64()
Definition: pieceMask64.h:18
mask.h
osl::container::PieceMask64::operator+=
PieceMask64 & operator+=(const PieceMask64 &o)
Definition: pieceMask64.h:52
osl::container::PieceMask64::resetAll
void resetAll()
Definition: pieceMask64.h:24
osl::misc::Mask64
GeneralMask< unsigned long long > Mask64
Definition: mask.h:347
osl::container::PieceMask64::hasMultipleBit
bool hasMultipleBit() const
Definition: pieceMask64.h:58
osl::container::PieceMask64::countBit2
int countBit2() const
bit の数を2まで数える
Definition: pieceMask64.h:68
osl::container::PieceMask64::operator^=
PieceMask64 & operator^=(const PieceMask64 &o)
Definition: pieceMask64.h:32
osl::container::PieceMask64::numToIndex
static int numToIndex(int)
Definition: pieceMask64.h:16
osl::container::PieceMask64::setAll
void setAll()
Definition: pieceMask64.h:28
osl::container::PieceMask64::getMask
const misc::Mask64 & getMask(int) const
Definition: pieceMask64.h:23
osl::container::PieceMask64::mutableMask
misc::Mask64 & mutableMask(int)
Definition: pieceMask64.h:21
osl::container::PieceMask64::mask
Mask64 mask
Definition: pieceMask64.h:14
osl::container::PieceMask64::operator&=
PieceMask64 & operator&=(const PieceMask64 &o)
Definition: pieceMask64.h:37
osl::__attribute__
const PtypeO PTYPEO_EDGE __attribute__((unused))
osl
Definition: additionalEffect.h:6
osl::misc::GeneralMask
Definition: mask.h:213