title: casting signed to unsigned
body: <p>is it correct to do this?</p>
  
  <pre><code>typedef unsigned int Index;
  
  enum
  {
    InvalidIndex = (Index) -1 
  };
  </code></pre>
  
  <p>I have read that it is unsafe across platforms, but I have seen this in so many "professional" codes...</p>