c++ hash combine

#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;
}