title: C++ crazy typedef : what is the point of allowing this syntax by the Standard?
body: <p>The old familiar one:</p>
  
  <pre><code>typedef int cute_int; //cute : common and familiar syntax. 
  </code></pre>
  
  <p>This syntax is perfect. No problem. </p>
  
  <p>Now, when we can write typedefs like above, then what is the point of allowing this syntax:</p>
  
  <pre><code>int typedef crazy_int; //crazy : uncommon and unfamiliar syntax.
  </code></pre>
  
  <p>Just to confuse programmers? Is this syntax even needed anywhere (when in fact we've the previous one)? What do you think from the compilers' point of view? Do they find it cute or crazy? Or it doesn't matter to the compilers at all?</p>
  
  <hr>
  
  <p>By the way, this code came from here : 
  <a href="https://stackoverflow.com/questions/4421306/use-of-typename-keyword-with-typedef-and-new/4421720#4421720">Use of typename keyword with typedef and new</a></p>
  
  <p>In case if you're wondering if that is syntax error, then check out <a href="http://www.ideone.com/xz3k9" rel="nofollow noreferrer">the working code here</a> at ideone.</p>