Простая задачка на Си++
2020-08-02 04:29Сложить два целых числа, вернуть целое. Породить исключение в случае арифметического переполнения.
Удивительно, сколько народу обламывается на этой задачке.int add(int a, int b);

no subject
Date: 2020-08-02 22:13 (UTC)no subject
Date: 2020-08-02 22:25 (UTC)no subject
Date: 2020-08-02 22:34 (UTC)Наверное, каст можно обойти с помощью union. Или с помощью memcpy.
no subject
Date: 2020-08-02 22:58 (UTC)memcpy() – самый надёжный способ, но если только в типе нету зарезервированных значений, т.н. trap representation (в целых обычно нет, но могут быть). А то после memcpy() при использовании результата может бяка вылезти.
no subject
Date: 2020-08-03 08:20 (UTC)Поэтому на проде вместо извращений с memcpy() и надежд на оптимизатор, я оставил бы каст, т.к. если найдётся платформа, где этот каст сломается, то проблемы будут абсолютно у всех и абсолютно везде, а не только у меня.