Почему size_t не имеет знака?

Бьерн Страуструп написал в The C++ Programming Language:

Целочисленные типы без знака идеально подходят для использования, когда хранение рассматривается как битовый массив. Использование unsigned вместо int, чтобы получить еще один бит для представлять положительные целые числа почти никогда не бывает хорошей идеей. Пытается убедитесь, что некоторые значения положительны, объявив переменные беззнаковыми обычно будет побежден неявными правилами преобразования.

size_t кажется беззнаковым, «чтобы получить еще один бит для представления положительных целых чисел». Так было ли это ошибкой (или компромиссом-), и если да, то должны ли мы свести к минимуму использование этого в нашем собственном коде?

Другая соответствующая статья Скотта Мейерса здесь . Подводя итог, он рекомендует не использовать неподписанные интерфейсы, независимо от того, всегда ли значение положительное или нет. Другими словами, даже если отрицательные значения не имеют смысла, вы не обязательно должны использовать без знака.

56
задан manlio 12 June 2015 в 14:40
поделиться