LINUX.ORG.RU

История изменений

Исправление eao197, (текущая версия) :

Ну и что, в unsigned нельзя передать отрицательное число?

А еще C++ спокойно позволяет сравнивать signed с unsigned, и даже int с float. Давайте не мешать все проблемы в одну кучу.

Когда я вижу код, в котором для размерностей/индексов используется знаковый тип, то я вынужден выискивать в коде какие-то хитрости (вроде той, что Antonl выше указал, когда отрицательный индекс/размерность упрощают ситуацию). И если таких хитростей не обнаруживаю, то начинаю считать, что код гораздо сложнее, чем мне кажется и требует еще большего внимания.

А потом оказывается, что автор тупо привык писать int a = strlen(b). И все.

Даже Страуструп сетовал, что мол как жаль, что крестовая СТД вся на беззнаковых типах основана (индексы), это было ошибкой.

А еще Страуструп не стал делать автоматический вывод типов в первых версиях C++ из-за того, что ключевое слово auto в тот момент было занято для обозначения типа памяти (в дополнение к register и static).

И что?

Все ошибаются, в том числе и Страуструп.

Исходная версия eao197, :

Ну и что, в unsigned нельзя передать отрицательное число?

А еще C++ спокойно позволяет сравнивать signed с unsigned, и даже int с float. Давайте не мешать все проблемы в одну кучу.

Когда я виду код, в котором для размерностей/индексов используется знаковый тип, то я вынужден выискивать в коде какие-то хитрости (вроде той, что Antonl выше указал, когда отрицательный индекс/размерность упрощают ситуацию). И если таких хитростей не обнаруживаю, то начинаю считать, что код гораздо сложнее, чем мне кажется и требует еще большего внимания.

А потом оказывается, что автор тупо привык писать int a = strlen(b). И все.

Даже Страуструп сетовал, что мол как жаль, что крестовая СТД вся на беззнаковых типах основана (индексы), это было ошибкой.

А еще Страуструп не стал делать автоматический вывод типов в первых версиях C++ из-за того, что ключевое слово auto в тот момент было занято для обозначения типа памяти (в дополнение к register и static).

И что?

Все ошибаются, в том числе и Страуструп.