diff --git a/src/common/hash_tuple.hpp b/src/common/hash_tuple.hpp index f32658c..2c5bb71 100644 --- a/src/common/hash_tuple.hpp +++ b/src/common/hash_tuple.hpp @@ -1,3 +1,6 @@ +#ifndef INCLUDED_PVPGN_HASH_TUPLE_H +#define INCLUDED_PVPGN_HASH_TUPLE_H + #include <cstddef> #include <functional> #include <tuple> @@ -16,6 +19,15 @@ namespace pvpgn } }; + namespace + { + template <class T> + inline void hash_combine(std::size_t& seed, T const& v) + { + seed ^= hash_tuple::hash<T>()(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); + } + } + namespace { // Recursive template code derived from Matthieu M. @@ -39,15 +51,6 @@ namespace pvpgn }; } - namespace - { - template <class T> - inline void hash_combine(std::size_t& seed, T const& v) - { - seed ^= hash_tuple::hash<T>()(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); - } - } - template <typename ... TT> struct hash<std::tuple<TT...>> { @@ -60,3 +63,5 @@ namespace pvpgn }; } } + +#endif \ No newline at end of file