coral_utils.h 310 B

123456789101112131415
  1. #pragma once
  2. #include <functional>
  3. namespace coral_3d
  4. {
  5. namespace utils
  6. {
  7. template<typename T, typename... args>
  8. void hash_combine(std::size_t& seed, const T& v, const args&... rest)
  9. {
  10. seed ^= std::hash<T>{}(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
  11. (hash_combine(seed, rest), ...);
  12. }
  13. }
  14. }