title: Conversion between signed integer and unsigned integer
body: <p>If I cast an unsigned integer to a signed integer then cast back, am I guaranteed to get the original value? For example, does this function always return <code>true</code> for any <code>x</code> on any platform according to the C++ standard?</p>
  
  <pre><code>bool f(unsigned int x)
  {
      return x == static_cast&lt;unsigned int&gt;(static_cast&lt;int&gt;(x));
  }
  </code></pre>
  
  <p>What about this one?</p>
  
  <pre><code>bool g(int x)
  {
      return x == static_cast&lt;int&gt;(static_cast&lt;unsigned int&gt;(x));
  }
  </code></pre>