How is long long implemented in C++?
<p>In C++, as far as I know, all data types are implemented as classes. ( Don't know if it is right, but I read it as a justification for statements such as <code>int a(5);</code> which calls the parametric constructor of int. )</p>

<p>If so, how are long and short implemented? I just found out that <code>long long</code> and <code>short short</code> are valid types but <code>short long</code> and <code>long short</code> are not (Checked the latter ones just because it sounds funny!)</p>

<p>Similarly, how are signed and unsigned implemented?</p>

<p>PS. By implemented, what I mean is "Is written using C/C++ features or is it written at a lower level in the compiler itself".</p>

<hr>

<p>So the equivalent parts of declaration of variable of a basic type and a userdefined object or variable is (read downwards)</p>

<pre><code>auto|register|static|extern           &lt;=&gt;   auto|register|static|extern
const                                 &lt;=&gt;   const
(signed|unsigned)(long|short)datatype &lt;=&gt;   class name etc
variable name                         &lt;=&gt;   object/variable name
</code></pre>

<p>? Is that assusmption correct?</p>
