Hi all,
I've been discussing the use of size_t with colleagues. One issue that has come up is loops that decrement the loop variable until it reaches zero.
Consider the following code:
for (size_t i = n-1; i >= 0; --i) { ... }
This causes an infinite loop due to unsigned integer wrap-around. What do you do in this case? It seems far to easy to write the above code and not realise that you've made a mistake.
Two suggestions from our team are to use one of the following styles:
for (size_t i = n-1; i != -1 ; --i) { ... }
for (size_t i = n; i-- > 0 ; ) { ... }
But I do wonder what other options there are...
Cheers,
Dan