avoid std::hash (C++11) and use boost::hash_range, thanks to K-ballo.