From: Tom Jackson Date: Wed, 8 Aug 2012 23:47:01 +0000 (-0700) Subject: Removing broken specialization of std::hash X-Git-Tag: v0.22.0~1217 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=cc1518dbf05f60c5ac480209c96a48a98d01455f;p=folly.git Removing broken specialization of std::hash Summary: ^ Test Plan: Unit tests Reviewed By: delong.j@fb.com FB internal diff: D543586 --- diff --git a/folly/Hash.h b/folly/Hash.h index efe0f047..52676e55 100644 --- a/folly/Hash.h +++ b/folly/Hash.h @@ -338,15 +338,6 @@ namespace std { return folly::hash::hash_combine(x.first, x.second); } }; - - // Same as above, but for arbitrary tuples. - template - class hash > { - public: - size_t operator()(const Ts&... ts) const { - return folly::hash::hash_combine(ts...); - } - }; } // namespace std #endif diff --git a/folly/test/HashTest.cpp b/folly/test/HashTest.cpp index 954b6b6d..dc3d403c 100644 --- a/folly/test/HashTest.cpp +++ b/folly/test/HashTest.cpp @@ -19,6 +19,7 @@ #include #include #include +#include using namespace folly::hash; @@ -172,6 +173,16 @@ TEST(Hash, hasher) { EXPECT_EQ(get_default(m, 4), 5); } +TEST(Hash, pair) { + auto a = std::make_pair(1, 2); + auto b = std::make_pair(3, 4); + auto c = std::make_pair(1, 2); + EXPECT_EQ(hash_combine(a), + hash_combine(c)); + EXPECT_NE(hash_combine(b), + hash_combine(c)); +} + TEST(Hash, hash_combine) { EXPECT_NE(hash_combine(1, 2), hash_combine(2, 1)); }