#include <iostream>
#include <functional>
// Combine hash values using bitwise XOR and bit-shifting
template <class T>
inline void hash_combine(std::size_t& seed, const T& value) {
seed ^= std::hash<T>{}(value) + 0x9e3779b9 + (seed << 6) + (seed >> 2);
}
int main() {
std::size_t hashValue = 0;
// Example values to combine
int intValue = 42;
double doubleValue = 3.14;
std::string stringValue = "HashCombine";
// Combine hash values
hash_combine(hashValue, intValue);
hash_combine(hashValue, doubleValue);
hash_combine(hashValue, stringValue);
// Display the final hash value
std::cout << "Combined Hash Value: " << hashValue << std::endl;
return 0;
}