Должна ли реализация C++ устанавливать символы '0'-'9' так, чтобы они имели непрерывные числовые значения, т.е. чтобы:
'0' -> 0+n
'1' -> 1+n
m -> m+n
'9' -> 9+n
Я не могу найти упоминания об этом в документации isdigit
([классификация] (22.3.3.1 Классификация символов)) *, а также не могу найти его в документации по локали (но, возможно, я недостаточно внимательно искал) .
В 2.3 Наборы символов мы находим, что
Базовый исходный набор символов состоит из 96 символов: символ пробела, управляющие символы, представляющие горизонтальную и вертикальную табуляцию, перевод страницы и новую строку, а также следующие 91 графический символ.
Но в нем не упоминается какой-либо порядок (но, возможно, я недостаточно внимательно смотрел).
*: Интересная сноска:
При использовании в цикле быстрее кэшировать фасет ctype‹> и использовать его напрямую [вместо isdigit() и др., конец комментария] или использовать векторную форму ctype‹>::is.
This question is not a good fit to our Q&A format. We expect answers to generally involve facts, references, or specific expertise; this question will likely solicit opinion, debate, arguments, polling, or extended discussion.
У меня есть факты, ссылки, конкретный опыт, и ответ, вероятно, не будет включать в себя запрос мнений, дебатов, аргументов, опросов, а, скорее всего, ссылку на стандарт, поэтому также не будет расширенного обсуждения? Кто-то обладает модными способностями? - person Sebastian Mach   schedule 23.02.2012Ⅿ
;)) - person MSalters   schedule 24.02.2012