Почему typeid.name () возвращают странные символы с помощью GCC и как заставить его печатать несвязанные имена?

Почему я запускаю этот main.cpp :

#include <iostream>
#include <typeinfo>

using namespace std;

struct Blah {};

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

Компилируя его с версией GCC 4.4.4:

g++ main.cpp

Я получаю следующее:

4Blah

В Visual C ++ 2008 , Я бы получил:

struct Blah

Есть ли способ заставить его просто печатать Blah или struct Blah ?

43
задан Ciro Santilli 新疆改造中心法轮功六四事件 5 June 2015 в 13:01
поделиться