Semplicemente specifica che

__gnu_cxx::hash_map<Z, T>::iterator

non è una variabile membro di hash_map ma un tipo.

g++ se non ricordo male è piuttosto pignolo (a ragione) su questo punto.