Loading [MathJax]/extensions/tex2jax.js
Radium Engine  1.5.0
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
StdUtils.hpp
1 #pragma once
2 
3 #include <Core/RaCore.hpp>
4 
5 #include <functional>
6 
9 namespace Ra {
10 namespace Core {
11 namespace Utils {
15 template <typename T>
16 void hash_combine( std::size_t& seed, const T& key ) {
17  std::hash<T> hasher;
18  seed ^= hasher( key ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 );
19 }
20 
22 template <typename T1, typename T2>
23 inline std::size_t hash( const std::pair<T1, T2>& p ) {
24  std::size_t result( 0 );
25  hash_combine( result, p.first );
26  hash_combine( result, p.second );
27  return result;
28 }
29 } // namespace Utils
30 } // namespace Core
31 } // namespace Ra
Definition: Cage.cpp:3