WX_HASH_MAP_NAMESPACE::hash<unsigned short> ushortHash;
#if defined wxLongLong_t && !defined wxLongLongIsLong
- // hash<wxLongLong_t> ought to work, but some 32-bit compilers have been
- // found where the hash doesn't work with 64-bit values.
- #if SIZEOF_LONG == 4 && (!defined SIZEOF_LONG_LONG || SIZEOF_LONG_LONG == 8)
+ // hash<wxLongLong_t> ought to work but doesn't on some compilers
+ #if (!defined SIZEOF_LONG_LONG && SIZEOF_LONG == 4) \
+ || (defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == SIZEOF_LONG * 2)
size_t longlongHash( wxLongLong_t x ) const
{
return longHash( wx_truncate_cast(long, x) ) ^
longHash( wx_truncate_cast(long, x >> (sizeof(long) * 8)) );
}
+ #elif defined SIZEOF_LONG_LONG && SIZEOF_LONG_LONG == SIZEOF_LONG
+ WX_HASH_MAP_NAMESPACE::hash<long> longlongHash;
#else
WX_HASH_MAP_NAMESPACE::hash<wxLongLong_t> longlongHash;
#endif