From 867c3dcd245790553635c7fd8e3faaed6fbc0fb8 Mon Sep 17 00:00:00 2001 From: Brad King Date: Mon, 8 Aug 2011 08:48:18 -0400 Subject: 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 Change-Id: Ie273f55cd4387ca3dbbe00b9d96ad4935e456c9e --- Source/kwsys/hash_fun.hxx.in | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Source/kwsys/hash_fun.hxx.in b/Source/kwsys/hash_fun.hxx.in index f21efc5..9a9cf47 100644 --- a/Source/kwsys/hash_fun.hxx.in +++ b/Source/kwsys/hash_fun.hxx.in @@ -38,7 +38,7 @@ #define @KWSYS_NAMESPACE@_hash_fun_hxx #include <@KWSYS_NAMESPACE@/Configure.hxx> - +#include <@KWSYS_NAMESPACE@/FundamentalType.h> #include <@KWSYS_NAMESPACE@/cstddef> // size_t namespace @KWSYS_NAMESPACE@ @@ -110,6 +110,29 @@ struct hash { size_t operator()(unsigned long __x) const { return __x; } }; +#if @KWSYS_NAMESPACE@_USE_LONG_LONG +@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION +struct hash { + size_t operator()(long long __x) const { return __x; } +}; + +@KWSYS_NAMESPACE@_CXX_DEFINE_SPECIALIZATION +struct hash { + 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 { + size_t operator()(unsigned __int64 __x) const { return __x; } +}; +#endif + } // namespace @KWSYS_NAMESPACE@ #endif -- cgit v0.12