- 1
static const int s_extend_offset[16] = { 0, ((-1)<<1) + 1, ((-1)<<2) + 1, ((-1)<<3) + 1, ((-1)<<4) + 1, ((-1)<<5) + 1, ((-1)<<6) + 1, ((-1)<<7) + 1, ((-1)<<8) + 1, ((-1)<<9) + 1, ((-1)<<10) + 1, ((-1)<<11) + 1, ((-1)<<12) + 1, ((-1)<<13) + 1, ((-1)<<14) + 1, ((-1)<<15) + 1 };
Вот если бы они посдвигали другие отрицательные числа, тогда бы ещё можно было заявлять о двинутости.
А размышления об UB — для анскилльных питухов, которые не знают, как работает процессор.
1) Поведение любой программы на UB++ не определено.
2) Компилятор UB++ написан на UB++ (см. пункт 1)
То по лицу рукой тяжелой,
То легкой кистью по груди -
Так цундере весь день готова
Свершать с мозгами акт любви