support std::tr1::unordered_map