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;
|
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) {
|
value_type& FindAndConstruct(const KeyT &Key) {
|
||||||
BucketT *TheBucket;
|
BucketT *TheBucket;
|
||||||
if (LookupBucketFor(Key, TheBucket))
|
if (LookupBucketFor(Key, TheBucket))
|
||||||
|
@ -45,6 +45,10 @@ public:
|
|||||||
return TheMap.erase(V);
|
return TheMap.erase(V);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void swap(DenseSet& RHS) {
|
||||||
|
TheMap.swap(RHS.TheMap);
|
||||||
|
}
|
||||||
|
|
||||||
DenseSet &operator=(const DenseSet &RHS) {
|
DenseSet &operator=(const DenseSet &RHS) {
|
||||||
TheMap = RHS.TheMap;
|
TheMap = RHS.TheMap;
|
||||||
return *this;
|
return *this;
|
||||||
@ -55,6 +59,12 @@ public:
|
|||||||
class Iterator {
|
class Iterator {
|
||||||
typename MapTy::iterator I;
|
typename MapTy::iterator I;
|
||||||
public:
|
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) {}
|
Iterator(const typename MapTy::iterator &i) : I(i) {}
|
||||||
|
|
||||||
ValueT& operator*() { return I->first; }
|
ValueT& operator*() { return I->first; }
|
||||||
@ -68,6 +78,12 @@ public:
|
|||||||
class ConstIterator {
|
class ConstIterator {
|
||||||
typename MapTy::const_iterator I;
|
typename MapTy::const_iterator I;
|
||||||
public:
|
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) {}
|
ConstIterator(const typename MapTy::const_iterator &i) : I(i) {}
|
||||||
|
|
||||||
const ValueT& operator*() { return I->first; }
|
const ValueT& operator*() { return I->first; }
|
||||||
|
Loading…
Reference in New Issue
Block a user