mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
Add range insert method for DenseSet and define DenseMapInfo for chars.
Patch by Kevin Fan! llvm-svn: 68239
This commit is contained in:
parent
2e9343d630
commit
d052c5bb9b
@ -51,6 +51,17 @@ struct DenseMapInfo<T*> {
|
|||||||
static bool isPod() { return true; }
|
static bool isPod() { return true; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Provide DenseMapInfo for chars.
|
||||||
|
template<> struct DenseMapInfo<char> {
|
||||||
|
static inline char getEmptyKey() { return ~0; }
|
||||||
|
static inline char getTombstoneKey() { return ~0 - 1; }
|
||||||
|
static unsigned getHashValue(const char& Val) { return Val * 37; }
|
||||||
|
static bool isPod() { return true; }
|
||||||
|
static bool isEqual(const char &LHS, const char &RHS) {
|
||||||
|
return LHS == RHS;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
// Provide DenseMapInfo for unsigned ints.
|
// Provide DenseMapInfo for unsigned ints.
|
||||||
template<> struct DenseMapInfo<unsigned> {
|
template<> struct DenseMapInfo<unsigned> {
|
||||||
static inline unsigned getEmptyKey() { return ~0; }
|
static inline unsigned getEmptyKey() { return ~0; }
|
||||||
|
@ -90,6 +90,13 @@ public:
|
|||||||
std::pair<iterator, bool> insert(const ValueT &V) {
|
std::pair<iterator, bool> insert(const ValueT &V) {
|
||||||
return TheMap.insert(std::make_pair(V, 0));
|
return TheMap.insert(std::make_pair(V, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Range insertion of values.
|
||||||
|
template<typename InputIt>
|
||||||
|
void insert(InputIt I, InputIt E) {
|
||||||
|
for (; I != E; ++I)
|
||||||
|
insert(*I);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // end namespace llvm
|
} // end namespace llvm
|
||||||
|
Loading…
Reference in New Issue
Block a user