Are the character digits [‘0’..’9′] required to have contiguous numeric values?

Indeed not looked hard enough: In 2.3. Character sets, item 3:

In both the source and execution basic character sets, the value of each character after 0 in the
above list of decimal digits shall be one greater than the value of the previous.

And this is above list of decimal digits:

0 1 2 3 4 5 6 7 8 9

Therefore, an implementation must use a character set where the decimal digits have a contiguous representation. Thus, optimizations where you rely on this property are safe; however, optimizations where you rely on the coniguity of other digits (e.g. ‘a’..’z’) are not portable w.r.t. to the standard (see also header <cctype>). If you do this, make sure to assert that property.

Leave a Comment