git-svn-id: svn://db.shs.com.ru/pip@844 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2019-08-14 12:00:33 +00:00
parent 6be61e2f39
commit 224a1ed916
5 changed files with 323 additions and 87 deletions

View File

@@ -500,6 +500,22 @@ inline uint piHashData(const uchar * data, uint len, uint seed = 0) {
}
template<typename T> inline uint piHash(const T & v) {
return 0;
}
template<> inline uint piHash(const char & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const uchar & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const short & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const ushort & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const int & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const uint & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const llong & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const ullong & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const float & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const double & v) {return piHashData((const uchar *)&v, sizeof(v));}
template<> inline uint piHash(const ldouble & v) {return piHashData((const uchar *)&v, sizeof(v));}
#define piRoundf piRound<float>
#define piRoundd piRound<double>
#define piFloorf piFloor<float>