KWSys: Fix using long long and __int64 with hash_(set|map)

Added hash function for types long long and __int64, conditional on
detection by FundamentalType.

Author: Bradley Lowekamp <blowekamp@mail.nih.gov>
Change-Id: Ie273f55cd4387ca3dbbe00b9d96ad4935e456c9e
This commit is contained in:
Brad King 2011-08-08 08:48:18 -04:00
parent 0e28009184
commit 867c3dcd24
1 changed files with 24 additions and 1 deletions

View File

@ -38,7 +38,7 @@
#define @KWSYS_NAMESPACE@_hash_fun_hxx #define @KWSYS_NAMESPACE@_hash_fun_hxx
#include <@KWSYS_NAMESPACE@/Configure.hxx> #include <@KWSYS_NAMESPACE@/Configure.hxx>
#include <@KWSYS_NAMESPACE@/FundamentalType.h>
#include <@KWSYS_NAMESPACE@/cstddef> // size_t #include <@KWSYS_NAMESPACE@/cstddef> // size_t
namespace @KWSYS_NAMESPACE@ namespace @KWSYS_NAMESPACE@
@ -110,6 +110,29 @@ struct hash<unsigned long> {
size_t operator()(unsigned long __x) const { return __x; } size_t operator()(unsigned long __x) const { return __x; }
}; };
#if @KWSYS_NAMESPACE@_USE_LONG_LONG
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<long long> {
size_t operator()(long long __x) const { return __x; }
};
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<unsigned long long> {
size_t operator()(unsigned long long __x) const { return __x; }
};
#endif
#if @KWSYS_NAMESPACE@_USE___INT64
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<__int64> {
size_t operator()(__int64 __x) const { return __x; }
};
@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION
struct hash<unsigned __int64> {
size_t operator()(unsigned __int64 __x) const { return __x; }
};
#endif
} // namespace @KWSYS_NAMESPACE@ } // namespace @KWSYS_NAMESPACE@
#endif #endif