title: Strange output of std::typeid::name()
body: <p>I used <code>typeid</code> to get the type names of the std::vector::size_type and a zero sized class A with the following code (<a href="http://en.cppreference.com/w/cpp/language/typeid" rel="noreferrer">cppreference</a>): </p>
  
  <pre><code>#include&lt;iostream&gt;
  #include &lt;vector&gt;
  #include &lt;typeinfo&gt;
  
  using namespace std;
  
  class A {};
  
  int main()
  {
      vector&lt;int&gt; v(10); 
  
      vector&lt;int&gt;::size_type s = v.size(); 
  
      A a; 
  
      cout &lt;&lt; typeid(s).name() &lt;&lt; endl;
      cout &lt;&lt; typeid(a).name() &lt;&lt; endl;
  
  };
  </code></pre>
  
  <p>And I got this as output: </p>
  
  <pre><code>m
  1A
  </code></pre>
  
  <p>I guess that "1" before "A" is a result of the Empty Base Class Optimization, but what does "m" stand for and is this normal? </p>
  
  <p>I am using the following gcc version: g++ (Ubuntu 4.4.3-4ubuntu5.1) 4.4.3</p>