title: Why can't I reinterpret_cast uint to int?
body: <p>Here's what I want to do:</p>
  
  <p><code>const int64_t randomIntNumber = reinterpret_cast&lt;int64_t&gt; (randomUintNumber);</code></p>
  
  <p>Where randomUintNumber is of type <code>uint64_t</code>.</p>
  
  <p>The error is (MSVC 2010): </p>
  
  <blockquote>
    <p>error C2440: 'reinterpret_cast' : cannot convert from 'const uint64_t'
    to 'int64_t' 1>          Conversion is a valid standard conversion,
    which can be performed implicitly or by use of static_cast, C-style
    cast or function-style cast</p>
  </blockquote>
  
  <p>Why doesn't it compile? both types have the same bit length, isn't it what reinterpret_cast is intended for?</p>