C++11: Are there reasons why some Regular Types should not have `std::hash` specialised?
问题 With a Regular Type, I mean the definition of Stepanov in Elements of Programming , basically, that there's the concept of equality and that objects which are copies of each other compare equal. So when you have a Regular Type T , and the equality relation is transitive ( a == b && b == c => a == c ), you can define a ( non-trivial ) hash function which is consistent with the definition of equality ( a == b => h(a) == h(b) ). Always. But the standard doesn't include many std::hash