Pourquoi ne typeid.nom() retournent des caractères bizarres à l'aide de GCC et comment le faire imprimer unmangled noms?

Comment se fait lorsque j'exécute ce main.cpp:

#include <iostream>
#include <typeinfo>

using namespace std;

struct Blah {};

int main() {
  cout << typeid(Blah).name() << endl;
  return 0;
}

Par le compiler avec GCC version 4.4.4:

g++ main.cpp

J'obtiens ceci:

4Blah

Sur Visual C++ 2008, je voudrais obtenir:

struct Blah

Est-il un moyen de le faire, il suffit d'imprimer Blah ou struct Blah?

InformationsquelleAutor sivabudh | 2010-12-16