Seltsame Ausgabe von std :: typeid :: name ()
ich benutztetypeid
um die Typnamen des std :: vector :: size_type und einer Klasse A mit der Größe Null mit dem folgenden Code zu erhalten (cppreference):
#include<iostream>
#include <vector>
#include <typeinfo>
using namespace std;
class A {};
int main()
{
vector<int> v(10);
vector<int>::size_type s = v.size();
A a;
cout << typeid(s).name() << endl;
cout << typeid(a).name() << endl;
};
Und das habe ich als Ausgabe bekommen:
m
1A
Ich vermute, dass "1" vor "A" ein Ergebnis der Optimierung der leeren Basisklasse ist, aber wofür steht "m" und ist das normal?
Ich benutze die folgende gcc-Version: g ++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3