| #ifndef VTR_HASH_H | |
| #define VTR_HASH_H | |
| #include <functional> | |
| namespace vtr { | |
| //Hashes v and combines it with seed (as in boost) | |
| // | |
| //This is typically used to implement std::hash for composite types. | |
| template<class T> | |
| inline void hash_combine(std::size_t& seed, const T& v) { | |
| std::hash<T> hasher; | |
| seed ^= hasher(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); | |
| } | |
| } // namespace vtr | |
| #endif |