我曾经使用typeid
以下代码(cppreference)获取 std::vector::size_type 的类型名称和零大小的 A 类:
#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
我猜“A”之前的“1”是空基类优化的结果,但是“m”代表什么,这正常吗?
我正在使用以下 gcc 版本:g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3