From 10741cdbcc8b3d3bab1bd79d221eed8212fec43d Mon Sep 17 00:00:00 2001 From: mordred Date: Fri, 26 Oct 2018 09:29:57 +0200 Subject: [PATCH] boost::hash_combine removed --- src/common/Util/Util.h | 11 +++++++++-- src/servers/sapphire_api/main.cpp | 1 - src/servers/sapphire_api/server_http.hpp | 9 +++++---- src/servers/sapphire_lobby/client_http.hpp | 4 ++-- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/common/Util/Util.h b/src/common/Util/Util.h index 8f9d27c3..79c19e05 100644 --- a/src/common/Util/Util.h +++ b/src/common/Util/Util.h @@ -3,9 +3,9 @@ #include #include +#include -namespace Core { -namespace Util { +namespace Core::Util { std::string binaryToHexString( uint8_t* pBinData, uint16_t size ); @@ -24,7 +24,14 @@ int64_t getTimeSeconds(); uint64_t getEorzeanTimeStamp(); void valueToFlagByteIndexValue( uint32_t inVal, uint8_t& outVal, uint16_t& outIndex ); + +template +inline void hashCombine( std::size_t& seed, const T& v ) +{ + std::hash hasher; + seed ^= hasher( v ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 ); } + } #endif diff --git a/src/servers/sapphire_api/main.cpp b/src/servers/sapphire_api/main.cpp index a4b6a2c2..c3a87e54 100644 --- a/src/servers/sapphire_api/main.cpp +++ b/src/servers/sapphire_api/main.cpp @@ -6,7 +6,6 @@ #include #include #include -#include #include #include diff --git a/src/servers/sapphire_api/server_http.hpp b/src/servers/sapphire_api/server_http.hpp index e5d3fffa..55a0ac09 100644 --- a/src/servers/sapphire_api/server_http.hpp +++ b/src/servers/sapphire_api/server_http.hpp @@ -3,8 +3,8 @@ #include #include -#include +#include #include #include #include @@ -23,10 +23,11 @@ public: }; class case_insensitive_hash { public: - size_t operator()(const std::string &key) const { + size_t operator()( const std::string &key ) const + { std::size_t seed=0; - for(auto &c: key) - boost::hash_combine(seed, std::tolower(c)); + for( auto &c : key ) + Core::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } }; diff --git a/src/servers/sapphire_lobby/client_http.hpp b/src/servers/sapphire_lobby/client_http.hpp index 69b45563..034bab97 100644 --- a/src/servers/sapphire_lobby/client_http.hpp +++ b/src/servers/sapphire_lobby/client_http.hpp @@ -2,7 +2,6 @@ #define CLIENT_HTTP_HPP #include -#include #include @@ -11,6 +10,7 @@ #include #include #include +#include class case_insensitive_equals { public: @@ -23,7 +23,7 @@ public: size_t operator()( const std::string &key ) const { std::size_t seed = 0; for( auto &c : key ) - boost::hash_combine( seed, std::tolower( c ) ); + Core::Util::hashCombine< char >( seed, std::tolower( c ) ); return seed; } };