Да, формально преобразование в Rvalue неопределенного значения - это UB (за исключением unsigned char
, изначально я писал «и варианты», но, как я помню, формально обслуживает дополненный символ 1 со знаком, где возможно использование минус 0 в качестве значения ловушки )
я слишком ленив, чтобы сделать стандартный поиск абзаца для вас, а также ленивый, чтобы заботиться о снижении голосов за это
однако на практике проблема только в (1) архаичных архитектурах и, возможно, (2) 64-битных системах.
РЕДАКТИРОВАТЬ : упс, теперь мне кажется, что я вспоминаю публикацию в блоге и связанный отчет о дефектах о формальном UB для доступа к неопределенному символу. так что, возможно, мне придется на самом деле проверить стандарт, + поиск DR. аааа, это будет потом потом, теперь кофе!
EDIT2 : Йоханнес Шауб любезно предоставил эту ссылку на вопрос SO , где обсуждался UB для доступа к char. Так вот откуда я это запомнил! Спасибо, Йоханнес.
ура и hth.,