File tree Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Expand file tree Collapse file tree 2 files changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -192,6 +192,13 @@ class DenseMap {
192
192
return true ;
193
193
}
194
194
195
+ void swap (DenseMap& RHS) {
196
+ std::swap (NumBuckets, RHS.NumBuckets );
197
+ std::swap (Buckets, RHS.Buckets );
198
+ std::swap (NumEntries, RHS.NumEntries );
199
+ std::swap (NumTombstones, RHS.NumTombstones );
200
+ }
201
+
195
202
value_type& FindAndConstruct (const KeyT &Key) {
196
203
BucketT *TheBucket;
197
204
if (LookupBucketFor (Key, TheBucket))
Original file line number Diff line number Diff line change @@ -45,6 +45,10 @@ class DenseSet {
45
45
return TheMap.erase (V);
46
46
}
47
47
48
+ void swap (DenseSet& RHS) {
49
+ TheMap.swap (RHS.TheMap );
50
+ }
51
+
48
52
DenseSet &operator =(const DenseSet &RHS) {
49
53
TheMap = RHS.TheMap ;
50
54
return *this ;
@@ -55,6 +59,12 @@ class DenseSet {
55
59
class Iterator {
56
60
typename MapTy::iterator I;
57
61
public:
62
+ typedef typename MapTy::iterator::difference_type difference_type;
63
+ typedef ValueT value_type;
64
+ typedef value_type *pointer;
65
+ typedef value_type &reference;
66
+ typedef std::forward_iterator_tag iterator_category;
67
+
58
68
Iterator (const typename MapTy::iterator &i) : I(i) {}
59
69
60
70
ValueT& operator *() { return I->first ; }
@@ -68,6 +78,12 @@ class DenseSet {
68
78
class ConstIterator {
69
79
typename MapTy::const_iterator I;
70
80
public:
81
+ typedef typename MapTy::const_iterator::difference_type difference_type;
82
+ typedef ValueT value_type;
83
+ typedef value_type *pointer;
84
+ typedef value_type &reference;
85
+ typedef std::forward_iterator_tag iterator_category;
86
+
71
87
ConstIterator (const typename MapTy::const_iterator &i) : I(i) {}
72
88
73
89
const ValueT& operator *() { return I->first ; }
You can’t perform that action at this time.
0 commit comments