Is it possible to strip type names from executable while keeping RTTI enabled?
===

I recently disabled RTTI on my compiler (MSVC10) and the executable size decreased significantly. By comparing the produced executables using a text editor, I found that the RTTI-less version contains much less symbol names, explaining the saved space.

AFAIK, those symbol names are only used to fill the `type_info` structure associated with each the polymorphic type, and one can programmatically access them calling `type_info::name()`.

According to the standard, the format of the string returned by `type_info::name()` is unspecified. That is, no one can rely one it to do serious things portably. So, it should be possible for an implementation to always return an empty string without breaking anything, thus reducing the executable size without disabling RTTI support (so we can still use the `typeid` operator & compare `type_info`'s objects safely).

But... is it possible ? I'm using MSVC10 and I've not found any option to do that. I can either disable completely RTTI (`/GR-`), or enable it with full type names (`/GR`). Does any compiler provide such an option?