Здравствуйте, sevanew, Вы писали:
ПВ>>>Вместо ПВ>>>SHRT_MAX + 1 следовало читать SHRT_MAX ПВ>>>и соответственно ПВ>>>вместо INT_MAX + 1 следовало читать INT_MAX
ПВ>>>голова дурная уже в час ночи ПВ>>>но как я понял от этого ничего не поменяется: все равно будет в обоих случаях будет UB
АТ>>Общий итог — не поменяется. Просто все те же эффекты теперь переместятся от инициализаций к инкрементам.
АТ>>В случае с 'i' мы опять получим неопределенное поведение на инкременте '++i' по тем же причинам.
АТ>>В случае с 's' мы опять получаем либо неопределеное поведение (если диапазон 'short' совпадает с диапазоном 'int'), либо результат, определяемый реализацией (в противном случае). По тем же причинам.
АТ>>Т.е. конкретного ответа в общем случае по-прежнему нет.
S>почему нет конкретного ответа, я посмотрел на код ассемблера и пришел у видел то, что и ожидалось....
В языке С++ нет никакого "кода ассемблера" и смотреть, сответственно, некуда. Ты увидел "то, что и ожидалось" в коде, сгенерированном конкретным компилятором. Я же вел речь об общем случае.