Я обсуждал использование size_t с коллегами. Одна из проблем, которая возникла, - это циклы, которые уменьшают переменную цикла до тех пор, пока она не достигнет нуля.
Рассмотрим следующий код:
for (size_t i = n-1; i >= 0; --i) { ... }
Это вызывает бесконечный цикл из-за отсутствия целого числа без знака. Что вы делаете в этом случае? Кажется, очень легко написать вышеприведенный код и не осознавать, что вы допустили ошибку.
Два предложения нашей команды - использовать один из следующих стилей:
for (size_t i = n-1; i != -1 ; --i) { ... }
for (size_t i = n; i-- > 0 ; ) { ... }
Но я задаюсь вопросом, какие другие варианты есть...