My bigger problem in the past has been loops of the type:<p><pre><code>    for(int i = 0; i &lt; a-b; ++i) f(a[i]);
</code></pre>
If a &lt; b, then this works cleanly, with no loops occuring. However:<p><pre><code>    for(unsigned i = 0; i &lt; a-b; ++i) f(a[i]);
</code></pre>
Instead casts a-b to a large unsigned integer, and horrible things happen. Of course, I could add a pre-check to my loop, but I don&#x27;t really want to (and of course, I have to remember to do that).