25#include <unordered_map>
42inline std::size_t
KiHashCombine( std::size_t aSeed, std::size_t aValue )
44 return aSeed ^ ( aValue + 0x9e3779b9 + ( aSeed << 6 ) + ( aSeed >> 2 ) );
52 return !strcmp( x, y );
64 std::size_t hash = 2166136261u;
68 hash ^= (
unsigned char) *it;
93typedef std::unordered_map< const char*, int, fnv_1a, iequal_to >
KEYWORD_MAP;
std::unordered_map< const char *, int, fnv_1a, iequal_to > KEYWORD_MAP
A hashtable made of a const char* and an int.
std::size_t KiHashCombine(std::size_t aSeed, std::size_t aValue)
Fold aValue into the running hash aSeed using the well-known Boost hash_combine mixing step.
Very fast and efficient hash function for "const char*" type, used in specialized KEYWORD_MAP below.
std::size_t operator()(const char *it) const
Equality test for "const char*" type used in very specialized KEYWORD_MAP below.
bool operator()(const char *x, const char *y) const