Как закодировать оператор по модулю (%) в C / C ++ / Obj-C, который обрабатывает отрицательные числа

Одна из моих любимых ненавистников к языкам, производным от C (как математик), заключается в том, что

(-1) % 8 // comes out as -1, and not 7

fmodf(-1,8) // fails similarly

Какое решение лучше всего?

C ++ допускает возможность перегрузки шаблонов и операторов, но и то, и другое для меня непонятно. примеры получены с благодарностью.

80
задан TemplateRex 16 December 2015 в 14:12
поделиться