2 つのプリミティブ型の std::pair の適切なハッシュ関数を見つけようとしています。これは私が今それを実装した方法です:
template<typename T, typename U>
std::size_t operator()(const std::pair<T,U> &rhs) const
{
return stdext::hash_value<T>(rhs.first) ^ stdext::hash_value<U>(rhs.second);
}
(1, 2) と (2, 1) (数字が反転) のような 2 つのペアがあっても機能するようです。これらは同じハッシュ値を生成しますが、値は引き続きハッシュ マップに正常に挿入されます。何かご意見は?