Функция div для беззнаковых типов
Почему в библиотеке нет функции div для беззнаковых типов, а есть только варианты для знаковых?
https://en.cppreference.com/w/cpp/numeric/math/div
Достаточно ли такой реализации?
return {x / y, x % y};
Ответы (1 шт):
В смысле достаточности - да, достаточно, но отнюдь не необходимо.
Эта функция появилась в С давно, когда еще экономили такты, а оптимизаторы были не такими крутыми, так что программисты вынуждены были оптимизировать сами.
Деление было очень дорогостоящим, причем часто результат и деления, и остатка получались с помощью одной одной (длинной по времени) комендой процессора. Так что если нужны были оба значения - можно было СИЛЬНО сэкономить на тактах процессора.
А дальше - как обычно: обратная совместимость.