The name()
member function of the type_info
struct is implementation-specific. There's no guarantee whatsoever that it will try to return something that matches what it says in the original program. In fact, the C++ ISO standard (18.5.1.7) actually says that this function returns "an implementation-defined NTBS" (null-terminated byte string). If it wanted to, it could have this always return the string "neener neerer I won't tell you the name of this type." This contrasts with Java's Class<?>
type, which has very strict restrictions on what it can and cannot return.
If you’d like to convert the name from std::type_info
into something more human, readable, check this other question for details.