Mercurial > dedupe
annotate BitArray.cpp @ 65:bc55cbd827bf
Compile fix.
| author | Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no> |
|---|---|
| date | Sun, 23 Dec 2012 22:04:55 +0100 |
| parents | b9515dc35fe4 |
| children |
| rev | line source |
|---|---|
|
47
b23f04d4a276
Test a custom BitArray.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
1 #include "BitArray.hpp" |
|
b23f04d4a276
Test a custom BitArray.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
diff
changeset
|
2 |
|
65
bc55cbd827bf
Compile fix.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
3 #include <cstring> |
|
bc55cbd827bf
Compile fix.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
4 |
|
52
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
5 BitArray::~BitArray() |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
6 { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
7 delete bits; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
8 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
9 |
|
64
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
10 BitArray::BitArray(const BitArray& other) |
|
b9515dc35fe4
Make sure no file has greater linewidth than 80.
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
62
diff
changeset
|
11 : size_(other.size()), bits(new uchar[NUMCHARS(size_)]) |
|
52
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
12 { |
|
65
bc55cbd827bf
Compile fix.
Tom Fredrik Blenning Klaussen <bfg@bfgconsult.no>
parents:
64
diff
changeset
|
13 std::memcpy(bits, other.bits, NUMCHARS(size_)); |
|
52
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
14 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
15 |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
16 BitArray& BitArray::operator=(const BitArray& other) |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
17 { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
18 if (NUMCHARS(size_) != NUMCHARS(other.size_)) { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
19 delete bits; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
20 bits = new uchar[NUMCHARS(other.size_)]; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
21 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
22 size_ = other.size_; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
23 memcpy(bits, other.bits, NUMCHARS(size_)); |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
24 return *this; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
25 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
26 |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
27 bool BitArray::operator==(const BitArray& rhs) const |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
28 { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
29 if (size() != rhs.size()) |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
30 return false; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
31 for(size_t i = 0; i < size(); ++i) { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
32 if (testBit(i) != rhs.testBit(i)) |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
33 return false; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
34 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
35 return true; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
36 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
37 |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
38 std::ostream& operator<<(std::ostream& out, const BitArray& rhs) |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
39 { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
40 for (size_t i = 0; i < rhs.size(); ++i) { |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
41 out << (rhs.testBit(i) ? "1" : "0"); |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
42 } |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
43 return out; |
|
725b0d776f3c
Fix a lot of problems with BitArray and reorganize which functions are
Tom Fredrik Blenning Klaussen <bfg@blenning.no>
parents:
47
diff
changeset
|
44 } |
