title: Why doesn't this reinterpret_cast compile?
body: <p>I understand that <code>reinterpret_cast</code> is dangerous, I'm just doing this to test it. I have the following code:</p>
  
  <pre><code>int x = 0;
  double y = reinterpret_cast&lt;double&gt;(x);
  </code></pre>
  
  <p>When I try to compile the program, it gives me an error saying</p>
  
  <blockquote>
    <p>invalid cast from type 'float' to type 'double</p>
  </blockquote>
  
  <p>What's going on? I thought <code>reinterpret_cast</code> was the rogue cast that you could use to convert apples to submarines, why won't this simple cast compile?</p>