Returning std::string for the type name is much safer.