我用typeid
获得的std ::矢量:: SIZE_TYPE并用下面的代码(一零大小类A的类型名称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;
};
而我得到这个作为输出:
m
1A
我想,“1”,“A”之前是空基类优化的结果,但什么是“M”代表和这正常吗?
我使用以下gcc版本:G ++(Ubuntu的4.4.3-4ubuntu5.1)4.4.3