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
7namespace osl
8{
9 namespace container
10 {
12 {
13 protected:
14 Mask64 mask;
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 }
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:
static int numToIndex(int)
Definition pieceMask64.h:16
PieceMask64(misc::Mask64 const &m)
Definition pieceMask64.h:19
PieceMask64 & operator^=(const PieceMask64 &o)
Definition pieceMask64.h:32
static int numToOffset(int num)
Definition pieceMask64.h:17
misc::Mask64 & mutableMask(int)
Definition pieceMask64.h:21
int countBit2() const
bit の数を2まで数える
Definition pieceMask64.h:68
PieceMask64 & operator|=(const PieceMask64 &o)
Definition pieceMask64.h:42
PieceMask64 & operator+=(const PieceMask64 &o)
Definition pieceMask64.h:52
const misc::Mask64 & getMask(int) const
Definition pieceMask64.h:23
PieceMask64 & operator&=(const PieceMask64 &o)
Definition pieceMask64.h:37
PieceMask64 & operator-=(const PieceMask64 &o)
Definition pieceMask64.h:47
static const GeneralMask makeDirect(Integer value)
Definition mask.h:219
const PtypeO PTYPEO_EDGE __attribute__((unused))