Здравствуйте, Евгений Музыченко, Вы писали:
ЕМ>Откуда такое пристрастие, кроме как от лени? Вроде как сколько-нибудь массовых процессоров, где беззнаковые целые поддерживались бы ограниченно, не существует. Есть в этом хоть какое-то рациональное зерно?
Насколько я понял, речь идёт о читабельности кода, в первую очередь, а не о тонкостях оптимизации там или ещё чем-то таком.
В целом тут уже была пара флеймов на тему signed vs unsigned, сопоставимых с Linux vs Windows и "плюсы и минусы STL". Так что там можно почитать в количестве
Если же коротко повторить, что бы не обсуждать в нескольких подветках, то
unsigned -- это кольцо по модулю вычетов известных степеней 2
signed -- это отрезок целых с доопределением операции деления на случай некратных чисел при помощи целочисленного деления и взятия остатка.
Соответственно, если мы где-то можем рассуждать о коде, игнорируя разрядность целых, то есть как о числах в математическом смысле, то этот код более читабельный и высокоуровневый, чем такой, где мы не можем игнорировать разрядность переменных.
И в этом смысле семантика индексов -- это тоже отрезок целого ряда, просто другой. И создавать его поверх отрезка целых [INT_MIN, INT_MAX] намного естественнее, чем над кольцом по модулей вычетов.
И, к концу тезисов, небольшой
бонус.
Возможно это тебе понравится больше, чем unsigned
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском