Re:How To Write an Equality Method in Java
by stcredzero on Tuesday June 09, 2009 @04:16PM
(#649889)
Maybe languages should have special interfaces for things that can be dictionary keys? That way, when someone implements that interface, you are certifying that the object is suitable for being a key.
[ Parent
| on HN ]
C++'s std::[unordered_]{map|multimap|set|multiset} containers all make const copies of keys. Of course, this being C++ you can wiggle out of this requirement (e.g. using the mutable keyword) but you have to be pretty insistant about it.
On the other hand, C++ containers have all sorts of other problems (iterator invalidation to name one)...
C# has the value type concept, but I don't think it's enforced on container keys.