green Вообще-то в моём варианте неявное преобразование тоже вполне срабатывает. Причём полностью согласно стандарту.
green Другое дело. l_inc Что-то оно в VS 2010 не срабатывает. И по какому стандарту знаковое должно неявно преобразовываться к беззнаковому?
Вот мой вариант: Код (Text): result = a - (int)(((unsigned __int64)(unsigned)a - 1) >> 32); По идее должно оптимизироваться без операции сдвига.
Табличной трансляцией. Объявить инициализированный массив с элементами 1,1,2,3,4,5..... Для переменной размером в один байт нужно будет 256 байт. Для 2-байтовых чисел потребуется уже 128 кб. Для 4-байтовых 16 Гб.
Хороший компилятор переведёт оператор (bool_exp) ? exp1 : exp2; в код без ветвления - тогда не нужны эти логические выкрутасы - они только замедлят код.
это глюк, на самом деле пост один. для проверки я отредактировал один из них - тепер ьсообщение о редактировании отображается в обоих. потом со временем уйдет