An alternative for any unsigned in C or C++ is:
anUnsigned = -1;
This is useful since it works for them all, so if you change from unsigned int
to unsigned long
you don't need to go through your code. You will also see this used in a lot of bit fiddling code:
anUnsigned |= -(aBoolOrConditionThatWhenTrueCausesAnUnsignedToBeSetToAll1s)
anUnsigned |= -(!aValueThatWhenZeroCausesAnUnsignedToBeSetToAll1s)
anUnsigned |= -(!!aValueThatWhenNonZeroCausesAnUnsignedToBeSetToAll1s)
The downside is that it looks odd, assigning a negative number to an unsigned!