mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-28 14:36:34 +00:00
Iterator traits and swap. closes PR6548 and PR6549
llvm-svn: 97974
This commit is contained in:
parent
939801510b
commit
4f4af9d95c
@ -192,6 +192,13 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
void swap(DenseMap& RHS) {
|
||||
std::swap(NumBuckets, RHS.NumBuckets);
|
||||
std::swap(Buckets, RHS.Buckets);
|
||||
std::swap(NumEntries, RHS.NumEntries);
|
||||
std::swap(NumTombstones, RHS.NumTombstones);
|
||||
}
|
||||
|
||||
value_type& FindAndConstruct(const KeyT &Key) {
|
||||
BucketT *TheBucket;
|
||||
if (LookupBucketFor(Key, TheBucket))
|
||||
|
@ -45,6 +45,10 @@ public:
|
||||
return TheMap.erase(V);
|
||||
}
|
||||
|
||||
void swap(DenseSet& RHS) {
|
||||
TheMap.swap(RHS.TheMap);
|
||||
}
|
||||
|
||||
DenseSet &operator=(const DenseSet &RHS) {
|
||||
TheMap = RHS.TheMap;
|
||||
return *this;
|
||||
@ -55,6 +59,12 @@ public:
|
||||
class Iterator {
|
||||
typename MapTy::iterator I;
|
||||
public:
|
||||
typedef typename MapTy::iterator::difference_type difference_type;
|
||||
typedef ValueT value_type;
|
||||
typedef value_type *pointer;
|
||||
typedef value_type &reference;
|
||||
typedef std::forward_iterator_tag iterator_category;
|
||||
|
||||
Iterator(const typename MapTy::iterator &i) : I(i) {}
|
||||
|
||||
ValueT& operator*() { return I->first; }
|
||||
@ -68,6 +78,12 @@ public:
|
||||
class ConstIterator {
|
||||
typename MapTy::const_iterator I;
|
||||
public:
|
||||
typedef typename MapTy::const_iterator::difference_type difference_type;
|
||||
typedef ValueT value_type;
|
||||
typedef value_type *pointer;
|
||||
typedef value_type &reference;
|
||||
typedef std::forward_iterator_tag iterator_category;
|
||||
|
||||
ConstIterator(const typename MapTy::const_iterator &i) : I(i) {}
|
||||
|
||||
const ValueT& operator*() { return I->first; }
|
||||
|
Loading…
Reference in New Issue
Block a user