Bjarne Stroustrup написал на языке программирования С++:
Беззнаковые целые типы идеально подходят для использования, которые обрабатывают хранилище как бит. Использование unsigned вместо int для получения еще одного бита для представляют собой целые положительные числа, которые почти никогда не являются хорошей идеей. Пытается убедитесь, что некоторые значения положительны, объявив переменные без знака обычно будут побеждены правилами неявного преобразования.
size_t кажется непознанным ", чтобы получить еще один бит для представления положительных целых чисел". Так это была ошибка (или компромисс), и если да, то следует ли нам минимизировать ее использование в нашем собственном коде?
Еще одна соответствующая статья Скотта Мейерса здесь. Подводя итог, он рекомендует не использовать unsigned в интерфейсах, независимо от того, всегда ли это значение положительно или нет. Другими словами, , даже если отрицательные значения не имеют смысла, вы не должны использовать unsigned.