Skip to content

Instantly share code, notes, and snippets.

@zhrkvl
Created December 25, 2016 17:01
Show Gist options
  • Save zhrkvl/2cefe3cdabc809db59b356058d5b5bfc to your computer and use it in GitHub Desktop.
Save zhrkvl/2cefe3cdabc809db59b356058d5b5bfc to your computer and use it in GitHub Desktop.
template<typename T>
const char32_t * const __get_byte_array(const T& data)
{
void * __void_ptr = (void *) &data;
const char32_t * const __char_ptr = (const char32_t * const) __void_ptr;
return __char_ptr;
}
template<typename T>
const size_t Hash(const T& data)
{
size_t sz = sizeof(T);
return hash<u32string>()(u32string(__get_byte_array(data)));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment