Se la funzione di hash può lavorare con un const char *, perché mai? L'importante è che l'oggetto di tipo string non venga distrutto prima che la funzione di hash abbia terminato.