I'm having a hard time trying to compile my code here. What I'm doing is to overload the boost::hash_value function to use boost::unordered_map with a custom Vector2 class.
You need to define it in the same namespace as Vector, so that it'll be found by ADL.