Fixed hashlib for 64 bit int keys

This commit is contained in:
Clifford Wolf 2015-08-12 13:37:09 +02:00
parent f81bf9bdea
commit bc468cb6f2
1 changed files with 9 additions and 3 deletions

View File

@ -58,17 +58,23 @@ template<typename T> struct hash_ops {
}
};
template<> struct hash_ops<int> {
struct hash_int_ops {
template<typename T>
static inline bool cmp(T a, T b) {
return a == b;
}
template<typename T>
static inline unsigned int hash(T a) {
static inline unsigned int hash(int32_t a) {
return a;
}
static inline unsigned int hash(int64_t a) {
return mkhash(a, a >> 32);
}
};
template<> struct hash_ops<int> : hash_int_ops {};
template<> struct hash_ops<long> : hash_int_ops {};
template<> struct hash_ops<long long> : hash_int_ops {};
template<> struct hash_ops<std::string> {
static inline bool cmp(const std::string &a, const std::string &b) {
return a == b;